复制到空文件夹?

时间:2010-12-23 10:09:02

标签: c#

当我使用命令时:

FILE.copy(source path , destination path)

它只是在目标路径中执行复制 有一个文件与我想要从源路径复制的文件同名。 实际上 - 它取代了它 如何执行将自己创建文件的复制? - 我想将文件复制到空文件夹!

2 个答案:

答案 0 :(得分:0)

在将文件复制到文件夹之前,该文件夹必须存在。所以当你这样做时:

File.Copy("d:\test\foo.txt", "d:\bar\foo.txt");

d:\bar必须存在。如果确实存在,则有两种可能性:

  1. 内部已包含foo.txt个文件 - >在这种情况下,除非您使用this overload
  2. ,否则您将获得例外
  3. 内部不包含foo.txt文件 - >现在有两个子类:

    2.1。您运行程序的用户具有足够的权限来写入此文件夹 - >在这种情况下,操作成功

    2.2。您运行程序的用户没有足够的权限来写入此文件夹 - >你得到一个例外(实际上你也可以得到一些其他例外,例如,如果没有足够的磁盘空间,......)


  4. 更新:

    现在你已经显示了你的代码问题就在这里:

    File.Copy(
        Path.Combine(@dok.Letter,@"copy\Hackers.avi"),
        @"C:\Users\sshap5x\Desktop",
        true
    ); 
    

    您需要在目标中指定文件名:

    File.Copy(
        Path.Combine(dok.Letter, @"copy\Hackers.avi"),
        Path.Combine(@"C:\Users\sshap5x\Desktop", "Hackers.avi"),
        true
    ); 
    

    同样为了完整起见,你可能想要:

    string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
    File.Copy(
        Path.Combine(dok.Letter, @"copy\Hackers.avi"),
        Path.Combine(desktopPath, "Hackers.avi"),
        true
    ); 
    

    像这样,您不需要对桌面路径进行硬编码。

答案 1 :(得分:0)

根据MSDN File.Copy

  

将现有文件复制到新文件

你确定这不起作用吗?也许粘贴一些代码。