为什么我收到“不支持给定路径的格式”错误

时间:2015-09-18 12:51:19

标签: c# .net exception

我无法使用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的问题,但没有运气我可以解决这个问题。我认为在指定路径时我在驱动器号后使用的“:”存在一些问题。请指导我。

2 个答案:

答案 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