思路:找到正在使用当前文件的程序,Kill程序,删除文件
代码如下:
string filePath = @"the file u want to delete";
var processes= FileUtil.WhoIsLocking(filePath);
foreach(var process in processes)
process.Kill();
File.Delete(filePath);
FileUtil类
public static class FileUtil
{
[StructLayout(LayoutKind.Sequential)]
struct RM_UNIQUE_PROCESS
{
public int dwProcessId;
public System.Runtime.InteropServices.ComTypes.FILETIME ProcessStartTime;
}
const int RmRebootReasonNone = 0;
const int CCH_RM_MAX_APP_NAME = 255;
const int CCH_RM_MAX_SVC_NAME = 63;
enum RM_APP_TYPE
{
RmUnknownApp = 0,
RmMainWindow = 1,
RmOtherWindow = 2,
RmService = 3,
RmExplorer = 4,
RmConsole = 5,
RmCritical = 1000
}
[StructLayout(Layout