为什么我得到“给定路径's格式不支持”;错误

本文关键字:格式 不支持 错误 给定路径 路径 为什么 | 更新日期: 2023-09-27 18:13:34

我无法使用c#重命名位于(D驱动器)的文件。我得到错误

Exception Details: 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"存在。尝试使用不同的位置。

我也试着阅读文件的内容。txt,但我得到同样的错误。我在SO上搜索了所有的问题,但是没有运气,我无法解决这个问题。我认为在指定路径时,我在驱动器号之后使用的":"有一些问题。

为什么我得到“给定路径's格式不支持”;错误

我在另一台电脑上尝试了这个,但仍然不起作用!(令人惊讶)我已经设法通过移动"file.txt"到我的项目文件夹来解决这个问题。现在我使用

string oldfilename = "file.txt";
string newfilename = "tree.txt";
System.IO.File.Move(oldfilename, newfilename);

And this Works!这似乎不是这个问题的答案(对我来说),但它确实对我有用。

为什么不利用:

 My.Computer.Filesystem.RenameFile("D:'file.txt", "tree.txt")

我自己尝试了一下,这些变体都起作用了:

        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恶作剧吗?从那个答案