停止为自动生成的原始内容临时文件的Filewatcher控件引发创建事件

本文关键字:Filewatcher 控件 事件 创建 临时文件 自动生成 原始 | 更新日期: 2023-09-27 18:12:07

我在我的winform应用程序中使用filewatcher控件。我正在通过处理其事件执行上传任务。

现在的问题是,当我在目录(这是在FileWatcher控制下观看)中创建任何新文档时,上传功能开始并上传文档。(我想要),但是在这个目录系统中创建新文档会生成临时文件,并且它也上传到服务器(我不想要)。

例如,如果我在xyz目录中创建一个名为Microsoft word document .docx的新word文档(此目录在FileWatcher控制下监视),则系统为该文档创建另一个文件,如~$w Microsoft word document .docx。这两个文件都上传到服务器了。

这里我举一个word文件的例子。上传的内容可以是任何(不固定)

停止为自动生成的原始内容临时文件的Filewatcher控件引发创建事件

您能不能检测到临时文件名并忽略它?您可能会发现它的一些属性使其明显不是普通文件,或者您可以发现Word使用的命名约定。(你想要一个以"$"开头的文件的可能性有多大?)

所以我得到了一个解决方案。在将文件添加到队列中进行上传之前,我使用了一些验证。

FileAttributes attr = System.IO.File.GetAttributes(e.FullPath);
FileInfo fi = new FileInfo(e.FullPath);     
if ((attr & FileAttributes.Hidden) == FileAttributes.Hidden || fi.Extension == ".tmp")
{
     return;
}

如果我得到文件属性隐藏或其扩展名,那么我从那里返回。
就这些