VC 强制删除 in use 文件
来源:互联网 发布:mysql 半连接 编辑:程序博客网 时间:2024/05/17 05:51
C++/CLI,.NET 2.0// DeleteAfterRebootNET.cpp : main project file.#include "stdafx.h"#include "windows.h"#define DEBUGusing namespace System;int main(array ^args){LPWSTR buff;BOOL ret;LPTSTR s;if (args->Length < 2){ Console::WriteLine(L"darn F(ile)|D(irectory) filename1|directory1 filename2|directory2 filename3|directory3 ..."); return -1;}else{ if (args[0]->ToLower() == "f") { int successed = 0, failed = 0; for(int i=1;iLength;i++) { if (System::IO::File::Exists(args) == false) { Console::WriteLine("File {0} doesn't exist!",args); failed++; continue; } buff = new wchar_t[args->Length+1]; for(int j=0;jLength;j++) buff[j]=args[j]; ret = MoveFileEx(buff,NULL,MOVEFILE_DELAY_UNTIL_REBOOT); if ( ret == 0) { if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL,GetLastError(),0,(LPTSTR)&s,0,NULL) != 0) { Console::WriteLine("Error:delete file {0} failed!",args); failed++; Console::WriteLine(gcnew String(s)); continue; } } else { Console::WriteLine("Successed delete file {0}!",args); successed++; } } Console::WriteLine("{0} file(s) processed,{1} successed, {2} failed.",args->Length-1,successed,failed);#ifdef DEBUG Console::ReadLine();#endif } else if (args[0]->ToLower() == "d") { int successed = 0, failed = 0; int dsuccessed = 0, dfailed = 0; for(int i=1;iLength;i++) { if (System::IO::Directory::Exists(args) == false) { Console::WriteLine("Directory {0} doesn't exist!",args); failed++; continue; } String^ currdir = Environment::CurrentDirectory; if (args->IndexOf(currdir) == -1) args = currdir + "//" + args; array ^files = System::IO::Directory::GetFiles(args); //未考虑嵌套情况 for(int j=0;jLength;j++) { buff = new wchar_t[files[j]->Length+1]; for(int j=0;jLength;j++) buff[j]=files[j]; ret = MoveFileEx(buff,NULL,MOVEFILE_DELAY_UNTIL_REBOOT); if ( ret == 0) { if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL,GetLastError(),0,(LPTSTR)&s,0,NULL) != 0) { Console::WriteLine("error:delete file {0} failed!",args); failed++; Console::WriteLine(gcnew String(s)); continue; } } else { Console::WriteLine("successed delete file {0}!",args); successed++; } } Console::WriteLine("{0} file(s) processed,{1} successed, {2} failed.",files->Length,successed,failed); buff = new wchar_t[args->Length+1]; for(int j=0;jLength;j++); ret = MoveFileEx(buff,NULL,MOVEFILE_DELAY_UNTIL_REBOOT); if ( ret == 0) { if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL,GetLastError(),0,(LPTSTR)&s,0,NULL) != 0) { Console::WriteLine("error:delete directory {0} failed!",args); dfailed++; Console::WriteLine(gcnew String(s)); continue; } } else { Console::WriteLine("successed delete directory {0}!",args); dsuccessed++; } } Console::WriteLine("{0} directory(s) processed,{1} successed,{2} failed.",args->Length-1,dsuccessed,dfailed);#ifdef DEBUG Console::ReadLine();#endif } else { Console::WriteLine("unkown flag:{0}",args[1]); return -2; }}return 0;}
- VC 强制删除 in use 文件
- 强制删除文件 强制删除文件夹
- 强制删除文件
- 强制删除文件
- inf强制删除文件
- QT cmd强制删除文件
- 如何强制删除正在使用的文件
- 学习强制删除正在运行的文件
- 强制删除windows文件的终极解决方法
- Win7强制删除文件或文件夹
- Windows 强制删除文件及文件夹命令
- Windows 强制删除文件及文件夹命令
- CMD强制删除拒绝访问的文件
- Windows下强制删除文件的批处理文件
- 强制删除文件:rm -rf 文件夹
- Java调用gc机制强制删除文件
- ubuntu强制删除带锁文件
- How to use binary mode for stdin/stdout in VC
- Javascript让页脚保持在未满屏页面的底部
- 昨天
- 容器元素旋转
- java继承中,成员变量的覆盖
- 测试数据生成工具
- VC 强制删除 in use 文件
- 水晶报表在大型WEB内部管理系统里的滑铁卢
- poj 1173 具有重复的组合和容斥原理
- 主数据同步涉及到的表
- VC菜单命令详解(文件打开、保存与关闭)
- 中国的问题
- Pb-oop文档简单翻译
- 吸血鬼数字
- interface (1)