我得到一个“NotSupportedExeption未被用户代码处理 - 不支持指定的路径格式”错误,即使我使用字符串重新加入。
string path = folder + "/" + filename;
fileByte = File.ReadAllBytes(path); // error here
任何想法是什么问题?
将代码编辑到此
string path = Path.Combine(folder, filename);
fileByte = File.ReadAllBytes(path);
路径是“F:\ Web \ Opgaver \ Skirmer \ Hjemmesiden \ BETA \ Skirmer 17-04-2012 \ Skirmer 17-04-2012 \ Billeder \ Galleri \ F:\ Web \ Opgaver \ Skirmer \ Hjemmesiden \ BETA \ Skirmer 17-04-2012 \ Skirmer 17-04-2012 \ Billeder \ Galleri \ 2011 \ Vingsted \ DSC_0001.JPG“
错误仍然存在。我看到的是ReadAllBytes重新显示一个显示路径的字符串,但我仍然显示错误
答案 0 :(得分:2)
您不应在路径中使用/
,因为斜杠是Windows中的无效字符。请改用Path.Combine
来创建它:
string path = Path.Combine(folder, filename);
答案 1 :(得分:1)
我认为你想使用反斜杠,或者更确切地说是属性Path.DirectorySeparatorChar
,它返回正确的分隔符,而不管文件系统如何:
string path = folder + Path.DirectorySeparatorChar.ToString() + filename;
或者您可以使用Path.Combine
方法:
string path = Path.Combine(folder, filename);
答案 2 :(得分:0)
path
变量的确切值是多少?
此外,您应该使用Path.Combine
将路径部分连接到完整路径。
正如File.ReadAllBytes
所述的文档:
NotSupportedException - path is in an invalid format.
答案 3 :(得分:0)
答案 4 :(得分:0)
如果您在编辑过的问题中发布的路径确实是您尝试阅读的路径,那么您获得异常的原因是因为路径中有两个冒号。驱动器号重复两次(F:\...F:\...
)。
您最终使用该路径的原因完全取决于您对folder
的调用中filename
和Path.Combine()
的内容。 folder
和filename
两者都不可能以完整路径开头,因为Path.Combine()
将返回filename
作为该情况下的组合路径。在您致电folder
之前,您的NotSupportedExeption
变量很可能已包含两个基本路径副本,其中包含两个驱动器号,因此有两个冒号,从而导致Path.Combine()
。