c#异步判断文件是否产生
时间: 2023-07-27 20:10:13 浏览: 56
在C#中,可以使用异步操作和文件监视器来判断文件是否产生。下面是一个示例代码:
```csharp
using System.IO;
using System.Threading.Tasks;
public static async Task<bool> IsFileCreatedAsync(string filePath)
{
var tcs = new TaskCompletionSource<bool>();
// 创建文件监视器
var watcher = new FileSystemWatcher(Path.GetDirectoryName(filePath), Path.GetFileName(filePath));
watcher.EnableRaisingEvents = true;
// 监听文件创建事件
watcher.Created += (s, e) =>
{
tcs.TrySetResult(true);
watcher.Dispose();
};
// 监听文件删除事件
watcher.Deleted += (s, e) =>
{
tcs.TrySetResult(false);
watcher.Dispose();
};
// 等待文件创建或删除事件
return await tcs.Task;
}
```
使用方法:
```csharp
var isCreated = await IsFileCreatedAsync(@"C:\test.txt");
if (isCreated)
{
Console.WriteLine("文件已创建");
}
else
{
Console.WriteLine("文件未创建");
}
```
该方法会异步等待文件创建或删除事件,并返回一个布尔值来表示文件是否产生。需要注意的是,该方法仅在Windows系统上可用。