文件查看器(解决文件锁问题)
//为某个目录下的某种后缀的文件建立文件查看器
//例子中,path = @"C:\";
//如果需要监视path目录中所有的rmvb的文件,则Filter = "*.rmvb";
//如果需要监视的是特定的文件,则Filter为该文件名,如Filter = "TestFile.txt"
Private void CreateFileWatch( string path , string Filter )
{
FileSystemWatcher watcher = new FileSystemWatcher();
//建立需要查看的路径
watcher.Path = path;
//建立查看的方式
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.Size;
//建立需要查看的文件后缀名
watcher.Filter = Filter;
// 增加事件查看器
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);
//开始监视
watcher.EnableRaisingEvents = true;
Thread.Sleep( 3000 ); //该等待时间是为了监视所需的时间!!!!可延长
}
// 定义事件
private static void OnChanged(object source, FileSystemEventArgs e)
{
ChangeFlag = true;
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
RenameFlag = true;
}
这里我们假设bool ChangeFlag=false(bool RenameFlag=false)为public类型的变量,那么对于所给定的目录path中的文件,如果有改动的话,则ChangeFlag的值为true(RenameFlag的值为true).
上边所提到的程序可以建立一个类,其中有三个方法(CreateFileWatch,OnChanged,OnRenamed)+两个变量(ChangeFlag,RenameFlag)
上边提到的文件查看器,可以用来对文件进行监视,解决文件锁问题!!

浙公网安备 33010602011771号