C# 强制删除文件,解除占用的几点思考

有一个古老的传说:
占用的文件是可以被强制删除的。。。

如果被别的应用程序打开着,你就要先找到那个打开的程序,结束掉才行。或者关闭关闭相关进程,延迟的方法。

一般来说被占用就意味着有其它进行或者线程对该文件读或写操作。如果是自己的程序对该文件有文件流读写最好在完成或者异常的时候关闭流Close(),释放流Dispose(),后续才不会提示对此文件有占用;如果不是自己的程序原因引起文件的占用,则要重启一下电脑进行删除,如果仍然提示占用则要结束掉占用此文件的进程,才可以进行删除。

解决方案1

要检测文件被那个进程占用,需要使用微软提供的工具Handle.exe,这里有微软提供的下载

我们可以在c#中调用Handle.exe 来检测到底哪个进程占用了文件

string fileName = @"c:\aaa.doc";//要检查被那个进程占用的文件

Process tool = new Process();
tool.StartInfo.FileName = "handle.exe";
tool.StartInfo.Arguments = fileName+" /accepteula";
tool.StartInfo.UseShellExecute = false;
tool.StartInfo.RedirectStandardOutput = true;
tool.Start();
tool.WaitForExit();
string outputTool = tool.StandardOutput.ReadToEnd();

string matchPattern = @"(?<=\s+pid:\s+)\b(\d+)\b(?=\s+)";
foreach(Match match in Regex.Matches(outputTool, matchPattern))
{
    Process.GetProcessById(int.Parse(match.Value)).Kill();
}

参考文章

winform中,如何强制删除被占用文件

jevan,  使用c#检测文件正在被那个进程占用

时间: 2024-10-18 02:23:42

C# 强制删除文件,解除占用的几点思考的相关文章

如何恢复一体机由于强制删除文件的资料

问题描述:强制删除文件是很常见的数据恢复故障.在强制删除文件后如何恢复数据就显的尤为重要了,首先我们需要明白,在强制删除文件后不能往要恢复的误删文件所在的分区,存入任何新的文件,否则数据覆盖了就无力回天了.接下来我们还需要了解下具体如何恢复强制删除文件的数据,具体请看正文了解. 工具/软件:极限数据恢复软件 步骤1:先百度搜索并下载程序运行后,在软件中选择需要恢复的盘,点<开始恢复>按钮,软件会对这个盘扫描,将所有找到的数据都显示出来.步骤2:这里只需要耐心等等就可以了(一般只需要几分钟).步

Windows下强制删除文件或文件夹

前言 在windows下,有时候会碰到一些文件无法删除,尽量使用"管理员取得所有权" ,但文件或文件夹依然无法删除,这一点非常苦恼. 本文记录几款可以解锁文件占用的软件. LockHunter 推荐此软件:LockHunter - 右键解锁强制删除顽固文件(夹),并可查看占用锁住文件的软件进程 介绍:http://www.iplaysoft.com/lockhunter.html 官网下载:http://www.lockhunter.com/download.htm Handle ht

c# 强制删除文件夹 DirectoryInfo

一个很小的点,删除文件夹,删除文件夹和其中的所有文件,具体看代码 DirectoryInfo rootDir = new DirectoryInfo(srcPath); foreach (DirectoryInfo dir in rootDir.GetDirectories()) { dir.Delete(true); //删除文件夹和其内的文件(强制删除) dir.Delete(); //删除文件夹(默认参数是false) } 原文地址:https://blog.51cto.com/zhenc

强制删除文件夹

今天在删除桌面的文件夹时,一直都删不掉,说什么权限不够,当时就懵逼了,于是就想着用命令来删除该文件夹. 首先我是用的是:rmdir 目录名 然后提示我说是非空文件夹,此时我明白了,原来该命令只能删除空文件夹.此路不通,看来得另寻他法了.在网上查找了很久,在试了n次之后,发现这个可恶的文件夹终于被我成功地删除了. 要删除一个非空文件夹可以使用如下命令: rd /s 文件夹名        // rd的意思就是删除文件夹,(remove directory),/s表示删除该目录下所有遍历的子目录和文

win10强制删除文件的文件恢复法子

文件误删是很常见的数据恢复故障.在文件误删后如何恢复数据就显的尤为重要了,首先我们需要明白,在文件误删后不能往要恢复的误删文件所在的分区,存入任何新的文件,否则数据覆盖了就无力回天了.接下来我们还需要了解下具体如何恢复文件误删的数据,具体请看正文了解. 工具/软件:AuroraDataRecovery 步骤1:先百度搜索并下载软件运行后,直接双击需要恢复的分区,然后解压再右击软件图标选择<以管理员身份运行>软件 步骤2:程序打开后,直接双击需要恢复的分区 步骤3:等待软件扫描完成,大概需要几分

WIndow强制删除文件或文件夹

在任意位置上右键 - 新建 - 文本文档,然后将下面的内容复制到文件中并更名为delete.bat DEL /F /A /Q \?\%1RD /S /Q \?\%1 之后将需要删除的文件或文件夹拖到delete.bat文件上,即可删除该文件或文件夹 原文地址:https://blog.51cto.com/14284354/2420534

将文件解除占用

一.有提示是哪个程序占用: 显示哪个程序占用,就将哪个程序在任务管理器中关闭 二.没有显示哪个程序占用: 1.先找到是哪个程序占用 a.打开资源管理器 先打开任务管理器,选择“性能”选项,在最下面有“打开资源管理器”项,点击 b.利用资源管理器搜索占用程序 首先选择“CPU”项,在“关联的句柄”栏搜索框内输入被占用的文件名称,记下PID值 c.利用命令提示符杀死程序 首先用“WIN+R”打开运行窗口,输入“CMD”,回车打开命令行窗口 在命令行窗口输入“TASKKILL /PID (PID值)/

win10文件强制删除的文件恢复法子

问题描述:文件误删除是很常见的数据恢复故障.在文件误删除后如何恢复数据就显的尤为重要了,首先我们需要明白,在文件误删除后不能往要恢复的误删文件所在的分区,存入任何新的文件,否则数据覆盖了就无力回天了.接下来我们还需要了解下具体如何恢复文件误删除的资料,具体请看正文了解. 工具/软件:极限数据恢复软件 步骤1:先下载并解压程序打开后,在软件中选择需要恢复的盘,点<开始恢复>按钮,软件会对这个盘扫描,将所有找到的数据都显示出来.步骤2:等待程序扫描完毕,平均需要几分钟时间.步骤3:程序扫描完成后,

Linux基础 linux系统中的批量删除文件与空文件删除的命令介绍

Linux基础教程  linux系统中的批量删除文件与空文件删除的命令介绍 Linux资料下面删除文件或者目录命令rm(remove): Linux培训功能说明:删除文件或目录. 语 法:rm [-dfirv][--help][--version][文件或目录...] 补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数"-r",否则预设仅会删除文件. 参 数: -d或--directory 直接把欲删除的目录的硬连接数据删成0,删除该目录. -f或--force 强制删除