try { FileInfo fi = new FileInfo("test.html"); Monitor.Enter(fi); WebClient wc = new WebClient(); wc.DownloadFile("http://www.baidu.com/", "test.html"); wc.Dispose(); Console.WriteLine(o.ToString()); Monitor.Exit(fi); } catch (Exception e) { Console.WriteLine(e.ToString()); }
如何锁住这个 test.html 禁止其他程序访问?
有一個讀 寫的 鎖,你查一下。
http://www.cnblogs.com/Teco/archive/2012/03/24/2415263.html
用lock关键字包装不想被其它进程所执行的代码段
是禁止”test.html"被其他程序读吗?如果你只是要禁止"test.html"在下载时被其他程序写入,那么你不用担心这个问题,因为download往test.html里写入时,已经保证了其他程序此时是无法同时写入的,不需要你代码去控制。如果你想禁止它被其他进程读,这是不可能的(至少我不知道有什么方法可以阻止一个管理员去打开某个文件)。
private void button1_Click(object sender, EventArgs e) { //要锁住一个文件,得用 独占模式打开文件。 FileStream file = new FileStream("C:\\aaa", FileMode.CreateNew); StreamWriter log = new StreamWriter(file); file.Lock(1, 0);
//TODO 写文件的代码
log.WriteLine(DateTime.Now.ToString()); log.Close(); file.Close(); file.Unlock(1, 0); }