2010-06-18 54 views
1

我試圖從Linux上將程序轉換爲在Windows上使用,並且它在Linux上調用test -ftest -d。我需要它在Windows上做同樣的事情。有沒有內置的命令,或者我可以使用其他程序來做同樣的事情?IsFile,IsDirectory測試窗口

我正在使用FreeBASIC進行編程(可怕的,但它是我得到的)。

編輯:一個外部程序是最好的選擇在這裏。我看了一下API,但並不好。

+0

爲什麼這個標籤'batch'?你想要一個批處理文件解決方案或FreeBASIC嗎? – Joey 2010-06-18 21:36:22

+0

是的,批處理,就像linux上的'test -f'。剛編輯它來反映這一點。 – bradlis7 2010-06-18 21:45:21

+0

在我的回答中添加一些快速信息,說明如何解決你自己的工具問題(即使你不知道C++,你也許可以從樣本中切出外殼,然後在這裏提出其他問題來解決任何問題剩餘的問題)。 – 2010-06-18 22:00:09

回答

2

從來沒有聽說過FreeBasic之前但是看着幫助有支持使用fbDirectory的屬性模式的過濾之一的DIR命令。
並且在該頁面上稍微查看一下,我看到他們有一個樣本來檢查找到的對象是文件還是目錄。看看here,看看那個頁面上的第二個例子。

不知道這些測試命令究竟做了什麼,但是如果你想測試一個特定的對象是否是一個目錄,你應該能夠調用Dir("exactname", fbDirectory, something)我以爲。然後你可以通過在某處放置一個Not來測試一個文件(假設FreeBasic支持這個)。

編輯:爲了製作您自己的工具,here是一個示例,它顯示了一個很小的C++應用程序,可以很容易地更改爲查找目錄。在示例中查找FindFirstFile,並在此之後檢查它是否爲只讀文件,可以將其更改爲FILE_ATTRIBUTE_DIRECTORY。

+0

是的,如果它能100%地工作,那會很好。我在某處讀到Dir()是沒有記錄的車。我會給它一個鏡頭。 – bradlis7 2010-06-18 21:44:00

+0

@ bradlis7:如果語言功能有問題,您可以更好地遵循Ed的建議:)。但是,如果您可以執行外部可執行文件並獲取返回值,那麼使用C++編寫一個很小的exe文件或查找這些文件很容易(您可以輕鬆找到一些示例代碼),然後只需自己創建該工具一些免費的C++編譯器。 – 2010-06-18 21:52:14

+0

那麼,我結束了使用Dir()和fbDirectory。它似乎工作。不幸的是我被freebasic卡住了...... – bradlis7 2010-06-21 21:48:07

1

不確定FreeBASIC,你看過vbscript嗎?你可以使用FileSystemObject

Dim fso, msg 
Set fso = CreateObject("Scripting.FileSystemObject") 
If (fso.FolderExists(fldr)) Then 
    'Do Something here 
Else 
    'Do Something 
End If 
If (fso.FileExists(filespec)) Then 
    'Do Something here 
Else 
    'Do Something 
End If 
+0

如果我沒有爲Linux創建2,000行代碼,那麼我可以這樣做。外部程序可以工作:'exec(「isfile filename」)'。 – bradlis7 2010-06-18 21:42:00