2009-10-06 26 views

回答

28

C:filename是一個有效的路徑,不同於C:\filenameC:filenameC:驅動器上當前目錄中的文件filename,而C:\filename是該驅動器根目錄中的文件filename。顯然,他們希望保留在某些驅動器上引用當前目錄的功能。

這種行爲描述here在MSDN

+3

這是從DOS 1.x中IIRC的保持了... :-) – 2009-10-06 20:38:28

+3

辣媽......這是不直觀。獲得預期價值的途徑是什麼? 'Path.Combine(驅動器+ @「\」,路徑)'? – Gishu 2010-04-28 07:25:23

+2

@Gishu - 這只是不直觀的,因爲路徑在Windows操作系統中的工作方式並不像人們想象的那麼簡單。請參閱我鏈接到的MSDN文章以查找有關Windows路徑工作方式的說明。 Path.Combine()結合了兩條路徑。我不會以您建議的方式使用字符串連接,因爲這會破壞Path.Combine()的整個目的。 AFAIC你應該小心你指定路徑的方式。如果你的意思是「C:\」,那麼使用它,如果OTOH是你的意思是「C:」(這是不同的,但同樣有效),那就使用它。 – 2010-04-28 08:22:19

5

MSDN似乎並沒有解釋爲什麼,但是你所看到的提供文件:

Path.Combine(字符串路徑1,串PATH2)

如果路徑1是不是驅動器引用(即「C:」或「D:」),並且不以DirectorySeparatorChar,AltDirectorySeparatorChar或VolumeSeparatorChar中定義的有效分隔符結尾,DirectorySeparatorChar將在連接之前附加到path1。

相關問題