我有一个临时文件夹,我有一些文件,我想要做的是一次一个地复制到另一个文件夹(但它必须在“copys”之间有一些延迟)因为我必须做的每个文件一些人使用它。
所以它将是
c:\temp
复制到c:\correctFolder
到目前为止,我的代码是
var sortedFiles = new DirectoryInfo(@"C:\Temp").GetFiles()
.OrderBy(f => f.LastWriteTime)
.ToList();
foreach(var p in sortedFiles)
{
File.Copy(@"C:\Temp\" + p, @"C:\correctFolder\" + p);
//delay
}
我无法使用System.Threading.Thread.Sleep(60000);
,因为它会停止所有内容,我只想延迟foreach
,因此我可以使用该文件..
答案 0 :(得分:2)
如果您需要阻止foreach
的下一次迭代,只需调用复制后需要调用的代码:
var sortedFiles = new DirectoryInfo(@"C:\Temp")
.GetFiles()
.OrderBy(f => f.LastWriteTime)
.ToList();
foreach(var file in sortedFiles)
{
var sourceFile = Path.Combine(@"C:\Temp\", file);
var destinationFile = Path.Combine(@"C:\correctFolder\", file);
File.Copy(sourceFile, destinationFile);
SomeOtherMethod(destinationFile);
}
在SomeOtherMethod()
返回之前,foreach的下一次迭代不会执行。
答案 1 :(得分:0)
在单独的帖子中对文件执行任何操作。您可以使用Sleep
进行延迟,因为"它不会停止所有内容"。您的申请将做出回应并保持冷静。