当前位置: 代码迷 >> VB Dotnet >> vb.net怎么获知文件已经被占用
  详细解决方案

vb.net怎么获知文件已经被占用

热度:174   发布时间:2016-04-25 02:00:19.0
vb.net如何获知文件已经被占用?
写文件时有时会因为文件被占用而失败,怎样通过代码获知文件已经被占用,提前做个判断?
------解决思路----------------------
起码 .net framework 没有这个判断,因此这里你只好用 try...catch 来完成。

一般来说,使用 try...catch 当作控制逻辑,是一个非常不好的做法。但是当你没有能力来提前做个判断时,也就只好如此了。
------解决思路----------------------
.Net把这个问题给包装
using System.IO;
当使用File.OpenFile, new FileStream()打开文件时,若抛出System.UnauthorizedAccessException异常,就说明没有权限或者文件被独占访问了
如若你非要区分,可以使用win32的OpenFile这个API,若返回的错误码为ERROR_SHARING_VIOLATION则说明被独占了 
------解决思路----------------------
加个异常处理吧,    有异常的情况会抛出的
Try

 Catch ex As Exception

End Try

还有文件被占用,说明你创建文件的时候没有释放资源,比如
Dim filestream As FileStream = File.Create(Path)
filestream.Close()
这样创建一个文件的时候,最后需要释放的
------解决思路----------------------


看这里 http://blog.csdn.net/lanpy88/article/details/7305184
  相关解决方案