我試圖從Linux上將程序轉換爲在Windows上使用,並且它在Linux上調用test -f
或test -d
。我需要它在Windows上做同樣的事情。有沒有內置的命令,或者我可以使用其他程序來做同樣的事情?IsFile,IsDirectory測試窗口
我正在使用FreeBASIC進行編程(可怕的,但它是我得到的)。
編輯:一個外部程序是最好的選擇在這裏。我看了一下API,但並不好。
我試圖從Linux上將程序轉換爲在Windows上使用,並且它在Linux上調用test -f
或test -d
。我需要它在Windows上做同樣的事情。有沒有內置的命令,或者我可以使用其他程序來做同樣的事情?IsFile,IsDirectory測試窗口
我正在使用FreeBASIC進行編程(可怕的,但它是我得到的)。
編輯:一個外部程序是最好的選擇在這裏。我看了一下API,但並不好。
從來沒有聽說過FreeBasic之前但是看着幫助有支持使用fbDirectory
的屬性模式的過濾之一的DIR
命令。
並且在該頁面上稍微查看一下,我看到他們有一個樣本來檢查找到的對象是文件還是目錄。看看here,看看那個頁面上的第二個例子。
不知道這些測試命令究竟做了什麼,但是如果你想測試一個特定的對象是否是一個目錄,你應該能夠調用Dir("exactname", fbDirectory, something)
我以爲。然後你可以通過在某處放置一個Not來測試一個文件(假設FreeBasic支持這個)。
編輯:爲了製作您自己的工具,here是一個示例,它顯示了一個很小的C++應用程序,可以很容易地更改爲查找目錄。在示例中查找FindFirstFile
,並在此之後檢查它是否爲只讀文件,可以將其更改爲FILE_ATTRIBUTE_DIRECTORY。
是的,如果它能100%地工作,那會很好。我在某處讀到Dir()是沒有記錄的車。我會給它一個鏡頭。 – bradlis7 2010-06-18 21:44:00
@ bradlis7:如果語言功能有問題,您可以更好地遵循Ed的建議:)。但是,如果您可以執行外部可執行文件並獲取返回值,那麼使用C++編寫一個很小的exe文件或查找這些文件很容易(您可以輕鬆找到一些示例代碼),然後只需自己創建該工具一些免費的C++編譯器。 – 2010-06-18 21:52:14
那麼,我結束了使用Dir()和fbDirectory。它似乎工作。不幸的是我被freebasic卡住了...... – bradlis7 2010-06-21 21:48:07
不確定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
如果我沒有爲Linux創建2,000行代碼,那麼我可以這樣做。外部程序可以工作:'exec(「isfile filename」)'。 – bradlis7 2010-06-18 21:42:00
http://unxutils.sourceforge.net/
可以使用的test.exe就像在linux下
爲什麼這個標籤'batch'?你想要一個批處理文件解決方案或FreeBASIC嗎? – Joey 2010-06-18 21:36:22
是的,批處理,就像linux上的'test -f'。剛編輯它來反映這一點。 – bradlis7 2010-06-18 21:45:21
在我的回答中添加一些快速信息,說明如何解決你自己的工具問題(即使你不知道C++,你也許可以從樣本中切出外殼,然後在這裏提出其他問題來解決任何問題剩餘的問題)。 – 2010-06-18 22:00:09