3

我用 DotNetZip 创建了一个 zip 文件/文件夹。我正在尝试将该文件从原始目录/文件夹移动到另一个,例如我的文档。到目前为止,我已经完成了以下操作,但它给了我一个错误,说它找不到路径的一部分。

private static void Move()
{
    try
    {
        Directory.Move(@"Debug\Settings.zip", IO.Paths.Enviroment.MyDocuments);
    }
    catch(Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}

更新:所以我玩了一下,笑了不是因为我修好了它,而是因为它很奇怪。我同时使用File.Move()andDirectory.Move()并更改both.Move(@"Debug\Settings.zip",...);both.Move(@"Settings.zip",...);然后得到一个错误说Cannot create a file when that file already exists.

目录树

4

4 回答 4

2

虽然使用Directory.Move移动文件可能看起来很奇怪(我会使用它File.Move),但Jean-Philippe Leclerc指出它会起作用。

问题在于路径Debug\Settings.zip

所有相对路径都相对于工作目录。默认情况下,工作目录是执行程序集(您的程序)的文件夹,而在调试时,它是bin\Debug您项目的子文件夹。因此,您的路径Debug\Settings.zip扩展为如下路径:

C:\..\MyProject\bin\Debug\Debug\Settings.zip

这可能不是你的意思。你的意思是"Settings.zip"

它是 ZIP 的事实是无关紧要的。

于 2013-02-22T01:35:01.387 回答
1

could not find part of the path- 错误似乎Relative Path您的文件Settings.Zip不是有效路径!


您需要使用File.MoveDirectory.Move将目录的全部内容移动到不同的文件夹。

File.Move:仅将文件移动到指定位置

private static void Move()
        {
            try
            {
                File.Move(@"Debug\Settings.zip", System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
于 2013-02-22T01:36:54.543 回答
1

使用System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)获取您的 MyDocuments 路径。

于 2013-02-22T01:37:40.997 回答
0

固定的!问题首先是"Debug\Settings.zip"应该是"Settings.zip"@"Settings.zip"最终目标不应该只是,System.IO.File.Move(@"Settings.zip", System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop));而是System.IO.File.Move(@"Settings.zip", System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop) + @"\Settings.zip");基本上,在目标字符串的末尾添加文件名和文件扩展名。

于 2013-02-22T07:14:43.000 回答