首页 / 知识
如何删除由C#中的另一个进程锁定的文件?
2023-04-11 14:29:00

How do I delete a file which is locked by another process in C#?
我正在寻找一种删除文件的方法,该文件被使用C#的另一个进程锁定。 我怀疑该方法必须能够找到哪个进程正在锁定文件(也许通过跟踪句柄,尽管我不确定如何在C#中执行此操作),然后关闭该进程,然后才能使用
杀死其他进程不是健康的事情。如果您的方案涉及卸载,则可以使用 如果您似乎确实需要删除另一个进程正在使用的文件,建议您在考虑任何解决方案之前重新考虑实际问题。 典型的方法如下。您已经说过要在C#中执行此操作,所以这里... 本质上:解锁"锁定"文件的方法是将DLL文件注入有问题的进程的地址空间,然后自行关闭它。您可以使用本机或托管代码来执行此操作。无论如何,您将需要少量的本机代码,或者至少需要P / Invoke。 有用的网址:
祝好运!
如果要以编程方式执行此操作。我不确定...我真的建议反对。 运行它,使用"查找句柄"命令(我认为它在"查找"或"处理"菜单中),然后搜索文件的名称。找到手柄后,即可强行关闭它们。 然后,您可以删除文件,依此类推。 当心,这样做可能会导致拥有句柄的程序的行为异常,因为您刚刚从它下面拉出了众所周知的地毯,但是当您调试自己的错误代码或Visual Studio / Windows资源管理器时,它运行良好被限制了,即使您告诉他们很久以前就关闭文件句柄也没有释放文件句柄...叹气:-) 您可以使用此程序Handle来查找哪个进程已锁定您的文件。这是一个命令行工具,所以我想您会使用它的输出。我不确定要以编程方式找到它。 如果删除文件可以等待,可以在下次启动计算机时将其指定为删除:
启动
W2K和WXP
在"数据"区域中,输入要删除的
然后按OK。
"目标文件名"是一个空(零)字符串。输入
关闭 (为了后代,从一些随机的论坛上偷偷偷走了。)
根据Orion Edwards的建议,我下载了Sysinternals ProcessExplorer,这反过来又使我发现删除困难的文件实际上不是由我认为的 看到此内容后,我很简单地调用了Attachment对象的dispose方法,并释放了句柄。 Sysinternals资源管理器使我发现了与VisualStudio2005调试器结合使用的功能。 我强烈推荐这个工具!
您可以使用提供完整文件路径的代码,它将返回锁定该文件的所有内容的
然后,迭代进程列表并关闭它们并删除文件:
并取决于文件是否在本地计算机上:
或网络计算机:
参考文献: 删除有人打开文件的目录 这看起来很有希望。一种杀死文件句柄的方法。 http://www.timstall.com/2009/02/killing-file-handles-but-not-process.html 噢,我几年前采用的一大技巧是Windows不允许您删除文件,但可以删除文件。 伪代码排序:
当应用程序重新启动时(请注意,我们不需要重新启动计算机),他们加载了新的 |
最新内容
相关内容
python怎么调用类方法
python怎么调用类方法,培训,方法,实例,静态,定义,参数,属性,对象,关键字,以上,python中的类用来描述具有相同的属性和方法的对象的集合。它定python判断字符串是否为小数的方法
python判断字符串是否为小数的方法,培训,代码,合法,小数点,小数,整数,字符串,方法,右边,左边,python想判断一个字符串是不是一个合法的小数,但python如何执行python文件
python如何执行python文件,代码,培训,文件,程序,命令,模式,事半功倍,后缀,文本,以上,用文本编辑器写Python程序,然后保存为后缀为.py的文件,就python可以继承父类方法吗
python可以继承父类方法吗,培训,代码,名字,方法,动物,属性,编译器,这样的话,定义,里面,python继承,调用父类属性方法在python里面,继承一个类python怎么打开文件
python怎么打开文件,代码,系统,培训,信息,基础,环境,文件,源文件,目录,命令,一、使用python源文件的几种方法\运行python脚本:a.windows下打python字符串连接的方法有哪些
python字符串连接的方法有哪些,培训,字符串,基础,方式,两个,变量,函数,空白,语言,功能,python中有很多字符串连接方式,下面总结一下:最原始的字python怎么生成xml文件
python怎么生成xml文件,数据,培训,设计,标准,文件,标记,语言,实例,模块,宗旨,用python内置的xml.dom可以对xml文件进行解析处理。什么是xml?Xpython字符串拼接有哪些方法?
python字符串拼接有哪些方法?,培训,一致,字符串,位置,异常,结果,方式,方法,字符,参数,python拼接字符串一般有以下几种方法:①直接通过(+)操作python创建多线程的两种方法
python创建多线程的两种方法,培训,第一,代码,业务,方法,线程,函数,任务,演示,实例,当我们使用python编程的过程中需要多个输出的任务的话,为了python包和文件夹有什么区别
python包和文件夹有什么区别,培训,单位,公共,文件夹,显卡,模块,大小,字节,剩余,实例,python包和文件夹有什么区别1、一个或多个文件夹组成一python列表数据如何增加和删除
python列表数据如何增加和删除,数据,培训,列表,索引,之后,末尾,跬步,结果,坚持不懈,字符串,python列表数据如何增加和删除1、使用append函数python有哪些大小写转换方法
python有哪些大小写转换方法,培训,字符串,方法,字符,字母,大写字母,大小写,长度,单词,大小,python中有哪些大小写转换方法1、lower()方法,大写