我想写入/删除文件,但有时如果该文件正在被另一个程序使用,则会发生崩溃。如何检查文件是否被其他进程打开,或者我可以打开文件进行写入?德尔福:检查文件是否在使用
回答
问题是,在您检查是否可以获得独占访问权限和打开文件之间,其他内容会独占访问该文件,并且无论如何你都会得到异常。
如果你能得到一个文件的排他锁,唯一的傻瓜证明方法是尝试获得文件上的排他锁,如果你有它的话。
如果没有,你捕获异常,并且无论是
- 去做些别的
- 稍等片刻,然后再试一次
这是生活中的情况下,最好要问的一个宽恕超过许可:)
+1,我希望更频繁地投票。这整个“检查某件事情,然后采取相应措施”似乎是旧DOS(或其他单一任务)日子的残余,或者只是程序员喜欢认为他们的程序全部在计算机上... – mghie 2009-02-02 13:35:03
如果您想查看哪个程序可以处理您的文件,请使用Process Monitor(从MicroSoft下载)。
此工具具有命令行界面,因此您可以使用您的语言的脚本界面(例如java.lang.Process
)运行该工具并显示一条有用的错误消息。
IsFileInUse如http://delphi.about.com/cs/adptips1999/a/bltip0999_3.htm中给出
有一个新的方式来获得文件的来源锁定为Vista和在这里: http://www.remkoweijnen.nl/blog/2011/01/03/cannot-access-files-but-need-the-origin/
用户模式: 写入锁定的文件,最好的办法是请用户关闭它在其他进程。在批处理过程中,您应该忽略这样的文件并记录问题。提供其他进程的名称是为用户找到解决方案的一种非常好的方式。
- 1. 德尔福 - 检查长使用POS
- 2. (德尔福)检查状态
- 3. 德尔福拼写检查
- 4. 是否有德尔福XE
- 5. 检查是否需要Focus Rect(德尔福)
- 6. 检查我们是否有写入权限的文件夹?德尔福
- 7. 使用德尔福编辑CSS使用德尔福
- 8. 德尔福7德尔福XE2 res文件问题
- 9. 德尔福2009年 - 检测组件是否安装
- 10. 德尔福 - 检查OSX上的Dropbox
- 11. 德尔福弹出菜单检查
- 12. Windows拼写检查和德尔福7?
- 13. TMenuItem自动检查与德尔福5
- 14. 德尔福HID Delphi7和德尔福XE2
- 15. 德尔福v.Word - 如何从德尔福
- 16. 检查德尔福DLL的安全性,在使用C#
- 17. 德尔福使用HIDController 2010
- 18. 德尔福使用Indy 10
- 19. 从德尔福使用wordpress
- 20. 德尔福:使用参数
- 21. 德尔福在Vista
- 22. 在德尔福7
- 23. 德尔福 - 使用日历组件
- 24. 德尔福 - 查找文本大TMemo
- 25. 德尔福保存到文本文件
- 26. DES_KEY_SZ德尔福
- 27. 德尔福Application.HintColor
- 28. 德尔福
- 29. 德尔福
- 30. 与德尔福
这将是信息列出你正在使用的操作系统和编程语言。 – Andy 2009-02-02 12:13:54
+1 Andy。 Arthur,请在标签或问题中提及编程语言或操作系统。 – Srikanth 2009-02-02 12:23:24