1

我想在我的代码 c# 中删除一个 zip 文件

try
 {
   System.IO.File.Delete(@"‪C:/Projets/Prj.zip");
  }
  catch { }

但我有这个错误The format of the given path is not supported.

为什么会出现这个异常?我该如何解决这个错误?

4

4 回答 4

3

您使用正斜杠而不是反斜杠,导致:

try
{
    System.IO.File.Delete(@"‪C:\Projets\Prj.zip");
}
catch { }

似乎有一些奇怪的字符溜进了某个地方,使其无效。如果我复制/粘贴上面的行,它会给我同样的例外。但是,如果我删除字符串并手动输入,它会给我一个FileNotFound(显然)。

尝试复制/粘贴此行:

System.IO.File.Delete(@"C:\Projets\Prj.zip");

经过进一步调查,罪魁祸首似乎是介于"和之间的隐形人物C。具体来说,存在“从左到右嵌入”的 unicode 字符。如果我将字符串转换为 unicode,您可以清楚地看到它:

System.IO.File.Delete(@"‪C:\Projets\Prj.zip");
于 2013-06-05T09:04:46.200 回答
2

Windows 中的文件路径使用反斜杠,而不是正斜杠:

System.IO.File.Delete(@"C:\Projets\Prj.zip");
于 2013-06-05T09:05:51.563 回答
1

使用Path库,访问平台无关的路径操作。示例如下:

var root = "C:" + Path.DirectorySeparatorChar;

var path = Path.Combine( root, "Projects", "Prj.zip" );

File.Delete(path); //will try to delete C:\Projects\Prj.zip
于 2013-06-05T09:11:03.437 回答
0

尝试

 string file = @"‪C:\Projets\Prj.zip";
  if( System.IO.File.Exists(file))
    System.IO.File.Delete(file);
于 2013-06-05T09:09:45.530 回答