我无法使用c#重命名位于(D驱动器)中的文件。我收到了错误
异常详细信息:System.NotSupportedException:给定路径 格式不受支持。
每一次。
我正在使用
string oldfilename = @"D:\abc\file.txt";
string newfilename = @"D:\abc\tree.txt";
System.IO.File.Move(oldfilename, newfilename);
但我在最后一行收到错误。 我也尝试将前两行更改为
string oldfilename = "D:\\abc\\file.txt";
string newfilename = "D:\\abc\\tree.txt";
我还确保文件“file.txt”存在。试图使用不同的位置。
我也尝试过读取file.txt的内容,但是我得到同样的错误。 我搜索了所有关于SO的问题,但没有运气我可以解决这个问题。我认为在指定路径时我在驱动器号后使用的“:”存在一些问题。请指导我。
答案 0 :(得分:0)
我在另一台计算机上试过这个但是它仍然没有用!(令人惊讶)。 我已经设法通过将“file.txt”移动到我的项目文件夹来解决此问题。 现在我正在使用
string oldfilename = "file.txt";
string newfilename = "tree.txt";
System.IO.File.Move(oldfilename, newfilename);
这就是作品! 这似乎不是这个问题的答案(对我来说),但它确实对我有用。
答案 1 :(得分:-2)
我自己尝试,这些变体有效:
string oldfilename = "C:\\Users\\User\\Downloads\\WorkTemp\\file.txt";
string newfilename = "C:\\Users\\User\\Downloads\\WorkTemp\\file2.txt";
System.IO.File.Move(oldfilename, newfilename);
string oldfilename = @"C:\Users\User\Downloads\WorkTemp\file1.txt";
string newfilename = @"C:\Users\User\Downloads\WorkTemp\file2.txt";
System.IO.File.Move(oldfilename, newfilename);
根据参考资料来源:http://referencesource.microsoft.com/#mscorlib/system/io/filestream.cs#749
如果路径中的:索引位于第三个位置或更晚,则抛出NotSupportedException。 (人们会期望:成为第二个角色)你确定你的源中没有零宽度组合字符或其他类似的Unicode恶作剧吗? 来自that answer