我正在使用上述方法,並獲得上述異常。
我在目錄名稱中沒有看到任何非法字符(還有其他目錄按預期返回結果)。
當我調用靜態Directory.GetFiles(String, String, SearchOption)
與在DirectoryInfo
方法上失敗的同一目錄時,沒有問題,並且該方法按預期返回。
任何想法可能會導致這種不正當行爲?DirectoryInfo.GetFiles方法(String,SearchOption)異常:System.ArgumentException:路徑中的非法字符
0
A
回答
1
我在Mac上掃描目錄(通過網絡共享)時遇到了此問題。
DirectoryInfo。GetFiles(@「// macbook/sharedfolder」)
很明顯,在mac上有相當合法的字符,如<,> ,?在一個文件名,但在Windows上它不是。
當目錄中的一個文件名有無效的字符時,我得到這個「非法字符」的錯誤。
1
如msdn所述,一個ArgumentException
當
是searchPattern包含由 GetInvalidPathChars方法定義的一個或多個無效字符上升。
(searchPattern
是該方法的第一個String參數)。
來測試這一點,您可以嘗試
var invalidChars = <yourSearchPattern>.Select(x => x).Intersect(Path.GetInvalidPathChars()).ToList();
如果你發現invalidChars的東西,你會發現你的問題的根源。
編輯
爲什麼它與Directory.GetFiles()工作?我必須承認我不明白。
的ArgumentException
升高
如果第一個參數(path
)具有無效字符(或IsNullOrWhiteSpace
),或
如果第二個參數(searchPattern
)
不包含有效模式
並且有效模式是
參數不能在兩個時期(「..‘)或者含有兩個週期結束 (’..」),接着DirectorySeparatorChar或 AltDirectorySeparatorChar,也不能含有 InvalidPathChars任何字符。
由於InvalidPathChars
(過時)給我相同的結果GetInvalidPathChars()
,至少在.NET 4.5,我必須承認我卡住了。
您可以使用不同版本的.net,兩者之間有區別嗎?
相關問題
- 1. 異常詳細信息:System.ArgumentException:路徑中的非法字符。 ASP.NET MVC
- 2. System.ArgumentException:路徑中的非法字符。錯誤
- 3. 如何解決這個異常路徑中的非法字符?
- 4. MiniProfiler拋出異常「路徑中的非法字符」
- 5. 轉換XML時路徑異常中的非法字符
- 6. ASP.Net核心RC1信息:System.ArgumentException:在路徑非法字符
- 7. 路徑c#中的非法字符 - XmlTextWriter
- 8. Fsharp.data「路徑中的非法字符」
- 9. C#中的路徑非法字符
- 10. HtmlAgilityPack:路徑中的非法字符
- 11. WebClient DownloadFileAsync路徑中的非法字符
- 12. 路徑中的非法字符。 AccountController.cs
- 13. 路徑錯誤中的非法字符
- 14. VB.net路徑中的非法字符
- 15. 路徑中的非法字符?
- 16. c#路徑中的非法字符
- 17. C# - 路徑中的非法字符
- 18. 錯誤:路徑中的非法字符
- 19. 路徑中的非法字符。 C#LoadControl
- 20. 例外:路徑中的非法字符
- 21. 與web.downloadstring路徑中的非法字符
- 22. 路徑中存在非法字符
- 23. 測試路徑:路徑中的非法字符
- 24. 非法字符在路徑之謎
- 25. 非法字符在索引路徑16
- 26. Get-Childitem:非法字符路徑錯誤
- 27. 非法狀態異常預計BEGIN_OBJECT,但STRING在1行1列路徑$
- 28. 未經授權的訪問異常DirectoryInfo.getfiles()方法
- 29. Powershell ISE「路徑中的非法字符」當管道路徑到測試路徑?
- 30. 搜索字符串 - 路徑中的非法字符
你可以發佈代碼嗎? – shahkalpesh
這似乎是世界上最明顯的事情,但*你傳遞的字符串是什麼?* –