【发布时间】:2021-09-14 11:35:54
【问题描述】:
我一直在使用 c# 的 fileSystemWatcher 来跟踪下载 zip 文件的时间,问题是文件名永远不会输出到 result.Name。这是为什么呢??
public ResultsDetails ExportCallsToCsv()
{
var downloadsDirectory = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\Downloads";
ExportToCsvButton.Click();
using (var watcher = new FileSystemWatcher(downloadsDirectory))
{
watcher.Filter = "*.zip";
var result = watcher.WaitForChanged(WatcherChangeTypes.Created, 10000);
CsvFilePath = $@"{downloadsDirectory}\{result.Name}".Replace("_", "-");
}
return new ResultsDetails(ActionResult.Passed, "Csv file created succesfully.");
}
为什么 result.Name 永远不会被填写?我试图在 using 块内放置一个无限循环,当 result.Name 被填充时会中断,但仍然无济于事。当我这样做时,它会永远停止。
【问题讨论】:
-
这是什么:
ExportToCsvButton.Click();(同步)在做什么?路径是否正确?您是否尝试过其他(非特殊)路径? -
我建议尝试使用其他
WatcherChangeTypes值,或删除"*.zip"Filter。可能创建的文件最初具有不同的扩展名,压缩完成后重命名为.zip。 -
该按钮将包含 csv 的 zip 文件下载到下载位置
-
按钮事件处理程序是否完成下载?还是只是启动它?
-
它只是启动它
标签: c# file io filesystemwatcher