写文件时有时会因为文件被占用而失败,怎样通过代码获知文件已经被占用,提前做个判断?
------解决思路----------------------
起码 .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