每当我尝试在文件中使用File.Delete方法时,我都会收到IOException,而其他线程正在写入。我没有控制写作线程。所以从我的线程如何停止文件写入和删除文件。如何在其他线程正在写入文件时删除文件?
1
A
回答
4
你不能;这就是文件锁定的关键 - 完全防止你提出的问题。
您可能达到相同效果的唯一方法是先杀死其他进程。这是一个非常糟糕的设计,可能你根本无法接受。
为什么你需要这样做呢?
0
为了使这成为可能,写线程在一个非排他性的模式,将允许访问文件给别人打开该文件。
如果你有写线程上没有任何控制,你将不能够做到这一点。
一个潜在的选择是尝试获得用于书写的相同句柄。毕竟,如果它是你的应用程序中的一个线程,那么这个句柄就在你的内存空间的某个地方。
请记住,如果你设法删除的文件,其他线程可能不会想到它,如果它不处理异常尝试再次写时,它会得到,你的整个过程可能会被终止。
说真的,这听起来像你应该重新考虑你的设计。
0
简单,因为其他一些工艺上的文件具有独占锁,而写而有力,你不能获得锁是不可能的。
因此,您的进程必须等到锁定进程释放锁或以某种方式终止锁定进程。
0
其他一些线程?即在你自己的程序中?
沟通,它的东西已经到来了,它需要停止写作,关闭该文件并将其删除。然后让它对这条消息作出回应并且这样做。
相关问题
- 1. 在java中删除文件,同时将其上传到其他线程
- 2. 删除文件强制即使它正在被其他进程
- 3. 读取正在被其他进程写入的文件
- 4. 如何强制写入/删除其他用户远程打开的文件?
- 5. 如何在导入其他.py文件时运行.pyc文件?
- 6. 如何在其他线程从中读取文件时修改文件?
- 7. 在删除之前写入文件名
- 8. 如何删除在其他程序中仍然打开的临时文件?
- 9. 正在写入文件时正在读取文件
- 10. 当文件正在被其他程序写入时,使用记事本等程序读取文件?
- 11. 未删除文件而不删除文件和其他文件系统?
- 12. 文件正在删除吗?
- 13. Java线程写入文件
- 14. 如何删除其他进程使用的文件
- 15. 在sqlite中,如何使用触发器写入其他文件?
- 16. 如何在tcl中读取文件并写入其他文件替换值
- 17. Gitignore在签出其他分支时删除文件
- 18. 在Java中创建临时文件时如何删除ip和其他数值
- 19. 正在写入的文件
- 20. 如何在shell中删除文件及其文件夹?
- 21. 如何在任何其他控件点击时清除文本
- 22. 如何导入配置TS文件在其他ionic2 TS文件
- 23. Realm从apk中删除其他文件
- 24. 删除其他用户的文件
- 25. 阅读压缩文件并将其写入其他文件python
- 26. 如何删除文件中的行并将其移至其他文件?
- 27. 我该如何编写一个批处理文件来删除其他目录中存在的所有文件?
- 28. 当用户在特定文件夹中写入/删除文件时检测到
- 29. 多线程写入文本文件
- 30. 在Matlab中写入文件时从EOF中删除字符
我认为如果你的程序正在运行一个文件,而某人的进程会杀死你的文件并删除你的文件,你就不会感到高兴。 – 2010-12-10 07:14:57