文件查看器(解决文件锁问题)

//为某个目录下的某种后缀的文件建立文件查看器
//例子中,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)

上边提到的文件查看器,可以用来对文件进行监视,解决文件锁问题!!

posted @ 2007-04-23 21:06  熊猫  阅读(991)  评论(0)    收藏  举报