【发布时间】:2024-01-18 16:43:01
【问题描述】:
我打算开发一个文件组织软件,它检测文件到达特殊文件夹并将这些文件复制到特定文件夹(例如 .txt 文件到 Text Doc 文件夹)。我正在使用FileSystemWatcher。
用于检测文件。所以我想知道C#代码是否完成了文件或文件夹复制操作(手动复制文件或文件夹)。
单文件程序没问题。但对于多个文件需要改进程序。
我使用这个循环来检查文件是否被释放,但是对于大文件这会导致程序没有响应。
void File_move(string source,string destination)
{
EE:
try
{
File.Move(source, destination);
}
catch (Exception ex)
{
lblStatus.Text = "Waiting for file copping complete";
Application.DoEvents();
goto EE;
}
}
【问题讨论】:
-
无法获取操作的当前运行状态。但是 FileSystemWatcher 应该在创建文件时引发“已创建”事件或其他事件 - 问题是我认为它是在复制刚刚开始并正在运行时创建的。是这个意思吗?
-
你是对的。它是在复制刚开始时创建的......我google了很多。我不认为会有答案。感谢回复
-
您可以继续收听 FileSizeChanged 事件或类似的事件(或上次访问日期,即使我也认为它在复制开始时设置了一次)。但是,您需要找出复制停止的时间(可能在一段时间没有 FileSizeChanged 事件之后)。
标签: c# copy detection filesystemwatcher