只是好奇,系統:: IO ::目錄:: GetDirectories( 「C:對C:\」)
我有,我用System::IO::Directory::GetDirectories("c:")
代替System::IO::Directory::GetDirectories("c:\\")
問題。
它最終從"C:\Windows\System32"
檢索目錄。如果我沒有使用其他驅動器的反斜槓,我結束了寬度目錄,我不知道它們存在。
有人能告訴我爲什麼會發生這種情況?有沒有一種模式?何時使用?
只是好奇,系統:: IO ::目錄:: GetDirectories( 「C:對C:\」)
我有,我用System::IO::Directory::GetDirectories("c:")
代替System::IO::Directory::GetDirectories("c:\\")
問題。
它最終從"C:\Windows\System32"
檢索目錄。如果我沒有使用其他驅動器的反斜槓,我結束了寬度目錄,我不知道它們存在。
有人能告訴我爲什麼會發生這種情況?有沒有一種模式?何時使用?
當你忽略的路徑(或驅動器盤符後)開始的反斜槓,路徑被認爲是相對到當前目錄。您可以使用System::IO::Directory::GetCurrentDirectory()
方法獲取當前目錄的值,您可以使用System::IO::Directory::SetCurrentDirectory(path)
方法更改它。
澄清一下考慮一下:當前目錄是C:\Windows
,路徑C:test.txt
等於C:\Windows\test.txt
。
GetDirectories
方法返回指定路徑中的所有目錄,甚至隱藏或系統目錄(你通常不會在Windows資源管理器看到)。所以我想你正在談論其他驅動器如System Volume Information
和$RECYCLE.BIN
的系統目錄。
在Windows shell(cmd.exe)中,我們可以爲每個驅動器分別配置當前目錄。當您運行:
C:\Windows\System32> cd d:\Temp
C:\Windows\System32> dir c:
你的C:\Windows\System32
內容,然後在運行:
C:\Windows\System32> dir d:
你的D:\Temp
+1我忘了相對路徑的內容。但是我仍然得不到的是:GetCurrentDirectory返回了項目文件夾「j:\ files \ solutrion \ project」(j:\是存儲項目的驅動器)。當我使用未準備好的驅動器的字母時,拋出異常,當我使用準備好的驅動器的字母時,我被重定向到了一些奇怪的位置。隱藏文件設置爲可見,所以我可以看到目錄包含的所有內容。這意味着(drive):和(drive)之間有差異:\ – JMRC 2013-05-11 13:44:11
我在我的機器中看不到您的問題。查詢其他驅動器時,我會得到驅動器根目錄的內容。 – 2013-05-11 14:03:22
即使沒有反斜槓? – JMRC 2013-05-11 14:54:50