在stackoverflow上有幾個相關的問題,但無論我的情況是不同的,或者我太愚蠢無法將這些與情況相關聯。我希望有人能幫助我。此外,我甚至沒有太多的.NET開發人員,所以我提前道歉,任何錯誤的術語使用。Directory.SetCurrentDirectory拋出PathTooLongException
我的方案如下所示:用於部署我們的.net應用程序(一次單擊?)的工具將其放入全名超過300個字符的目錄中。應用程序使用第三方組件(稱爲dbstore)來處理駐留在應用程序部署目錄中的指定文件。
到目前爲止,我們使用的是Assembly.GetExecutingAssembly().GetName().CodeBase
來構造傳遞給dbstore的文件的全限定名。但是,dbstore使用舊式API並在嘗試打開文件時失敗。
由於dbstore不會很快發生變化,因此建議將應用程序chdir移至部署目錄並將當前目錄中的相對路徑名稱傳遞給它。這也是在接受的迴應中描述的方法PathTooLongException in C# code
但是我發現Directory.SetCurrentDirectory
也會拋出PathTooLongException
。甚至在我使用UNC路徑名時也會發生這種情況,例如,以\\?\0000000000000\...
開頭的名稱我是否在做一些根本性錯誤?是否有另一個功能使用?
編輯:它似乎沒有辦法實現我在找什麼。據我所知,沒有辦法將當前目錄設置爲長路徑。
沒有'Environment.SetCurrentDirectory'但屬性'Environment.CurrentDirectory'可以分配。我得到了同樣的結果。即使我在子文件夾之後更改子文件夾,我也會在文件名長度限制後得到相同的異常,而與我使用的兩個函數中的哪一個無關。 – 2010-10-29 10:32:51
什麼是您的操作系統? – 2010-10-29 10:35:42
嗨伊戈爾我在Windows XP SP3上運行這個。 – 2010-10-29 10:40:52