我正在使用上述方法,并获得上述异常。
我在目录名称中没有看到任何非法字符(还有其他目录按预期返回结果)。
当我调用静态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
这似乎是世界上最明显的事情,但*你传递的字符串是什么?* –