我通过健康监测创建了一个文件清理功能。它正在删除另一个进程无法访问的文件。所以,我想检查一下。它保持访问。如果不能访问,我删除这个文件。我能怎么做?我怎么知道一个文件正在使用或不在asp.net
0
A
回答
2
一两件事你可以做,而不是试图去检查,看是否有文件被锁定(因为这可能在检查和尝试删除之间的时间变化)是包裹在try
/catch
块删除尝试:
Dim filenameToDelete = "AFileThatsInuse.doc"
Try
System.IO.File.Delete(filenameToDelete)
Catch ex As IOException
' Have some code here that logs the content of the exception to a log file,
'the Windows Event Log or sends an email - whatever is appropriate
End Try
请注意,与捕获通用Exception
相比,我抓到了IOException
。这是因为documentation为File.Delete
状态,你会得到这个异常时:
The specified file is in use.
-or-
There is an open handle on the file, and the operating system is Windows XP or earlier. This open handle can result from enumerating directories and files. For more information, see How to: Enumerate Directories and Files.
您可能仍然想赶上/处理其他异常类型,但它绝不是一个好主意,“盲目地”捕获并处理异常,而不是其更具体的变体之一。
你也可以尝试open the file写,并且如果失败,那么您可以告诉该文件已经打开其他地方:
Try
System.IO.File.Open("AFileThatsInUse.doc", FileMode.Open, FileAccess.Read, FileShare.None)
Catch ex as IOException
' As before, what you do when you determine the file is in use is up to you
End Try
该代码试图打开该文件完全,所以如果另一进程已经打开文件,它应该失败并且为你扔掉IOException
。
相关问题
- 1. 我怎么知道文件已经打开或正在使用?
- 2. 我怎么知道一个网站正在使用什么版本的CSS?
- 3. 我怎么知道哪一个是用于创建文件夹
- 4. 我怎么能知道,如果一个节点exsits或不
- 5. 怎么OS知道文件
- 6. 使用XMLTextReader,我怎么知道我在哪个元素上?
- 7. 我怎么能知道一个PrintWriter
- 8. 我怎么知道我看到什么使用的文件在磁盘上
- 9. 我怎么知道一个联系人有号码或不在android中?
- 10. ASP.net c#,我怎么知道要使用什么?
- 11. 蟒蛇:我怎么知道当我在最后一个循环
- 12. ASP.net MVC3实体,不知道怎么算
- 13. Linux的 - 我怎么知道给定的文件和/或分区
- 14. 使用Eclipse,我怎么知道ANT的版本正在被使用?
- 15. 如果我知道一个类,我怎么知道它来自哪个jar?
- 16. iPhone - 我怎么知道一个URL是否是一个资源文件?
- 17. 我怎么知道OkHttp调用我从
- 18. 我怎么知道一个Android应用第一次被加载?
- 19. Nuget:我怎么知道哪个项目引用了一个包?
- 20. 解释我不知道该怎么办?
- 21. 我不知道该怎么办
- 22. 我怎么知道,如果有一个硬件键盘?
- 23. 我正在创建一个电子邮件应用程序,我不知道要使用什么控件
- 24. 怎么知道天气复选框选中或不使用JavaScript
- 25. 我怎么知道一个用户加入了一个电报频道?
- 26. 我不知道我是否使用&&或||
- 27. 你怎么知道你的C#应用程序正在使用哪个DLL?
- 28. 你怎么知道什么时候在Python中关闭文件?
- 29. 我怎么知道哪个单选按钮是在文件选择HTML,嫩枝
- 30. 我想在几秒钟后显示一个TextView。不知道该怎么做
错误:这个文件是使用海洛因(asp.net) – 2011-02-10 09:21:51
你的意思是“如何知道一个文件是否正在使用(通过另一个进程)从一个asp.net应用程序?” =) – Rob 2011-02-10 09:24:17