C#在新目录中剪切文件和粘贴

Bge*_*ear 7 c#

我试图从我的计算机上的一个目录中剪切文件,并在每次在此特定目录中创建文件时将其粘贴到新目录中.我已经在看目录它会是什么样的简单

if (e.ChangeType == System.IO.WatcherChangeTypes.Created)
{ 
    //cut file
    //paste into new directory            
}
Run Code Online (Sandbox Code Playgroud)

Ken*_*nky 11

首先澄清,"剪切和粘贴"是用户界面术语.在文件系统中,它被称为"移动"文件.

其次,使用File.MoveTo的建议可能无法正常工作.IO Watcher将告诉您何时首次创建文件,而不是在写入文件时.如果您立即移动文件,您可以从作者下面拉出来.这可能导致写入文件的程序出错.

执行您提议的正确方法是等待文件被写入的进程关闭,然后移动它.

看一下MSDN 中的LockFileEx方法.您可以使用它来阻止,直到您对文件具有独占锁定(这将在写入过程关闭文件时发生).然后在释放锁之前移动文件.

最后,您可能不希望LockFileEx从文件系统观察者回调中调用.在获得文件的独占锁定之前,您可能需要等待很长时间.相反,您应该将创建的文件排队,以便由辅助线程(或线程池)锁定和移动.


vla*_*lad 9

事实上,cut + paste相当于移动,所以System.IO.File.MoveTo()应该很好地处理你的问题


Joe*_*nos 6

如果您只是在寻找要剪切/粘贴的代码,请查看方法:System.IO.File.Move()和System.IO.FileInfo.MoveTo().两者基本上都是一样的.


nas*_*ani 6

     string sourceFilePath = @"Your Path , ex : C:\";
     string destinationFilePath =  @"Your Path , ex : C:\";
     System.IO.File.Move(sourceFilePath, destinationFilePath);
Run Code Online (Sandbox Code Playgroud)