将文件从一个目录移动到另一个目录

时间:2013-02-22 01:33:15

标签: c# directory move

我用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()Directory.Move()并将both.Move(@"Debug\Settings.zip",...);更改为both.Move(@"Settings.zip",...);,然后收到错误消息Cannot create a file when that file already exists.

Directory Tree

4 个答案:

答案 0 :(得分: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的事实无关紧要。

答案 1 :(得分:1)

could not find part of the path - 错误似乎是您文件Relative Path的{​​{1}}不是有效路径!


您需要使用Settings.ZipFile.Move会将目录的全部内容移至不同的文件夹。

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

File.Move

答案 2 :(得分:1)

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

答案 3 :(得分: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");基本上,添加文件名和目标字符串末尾的文件扩展名。