用ShellExecute调用winrar怎么将文件压缩到一个不存在的目录里?

十万铁骑 2012-09-05 07:03:22
比如调用ShellExecute(NULL,"open","D:\\Program Files\\WinRAR\\WinRAR.exe","a I:\\dataq\\data3.rar","C:\\data3",SW_HIDE); 将C盘的data3压缩到I中dataq文件夹下,但是dataq文件夹不存在,怎么能让它自创建一个dataq呢?谢谢了!
...全文
183 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
十万铁骑 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
用PathFileExists()不可以吗?
[/Quote]
应该也行吧,没用过那个,刚学,也不是很懂,想着越简单越好
easyrem 2012-09-10
  • 打赏
  • 举报
回复
用PathFileExists()不可以吗?
十万铁骑 2012-09-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
看应用环境
如果你上面不用ShellExecute而用System的话,还是建议mkdir
System的使用会出现CMD界面的

所以还是用CreateDirectory比较好
[/Quot]
谢谢大侠指点,刚开始用的CreateDirectoryA,有没有那个路径,都能压缩成功,可是当判断那个路径是不是存在时,用了
HANDLE hFile1 = CreateFile("\\\\.\\I:\\dataq",
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,
NULL,
OPEN_EXISTING,
0,
NULL);//检测U盘
if(hFile1==INVALID_HANDLE_VALUE)
{
MessageBox("请创建dataq");
if(CreateDirectoryA("I:\\dataq",NULL)==NULL)
{
MessageBox("创建文件失败");
}//这个不带黑屏显示
// return;
}
CloseHandle(hFile1);
当I:\dataq存在时,也老是执行MessageBox("请创建dataq");好像CreateFile的返回值是错误似的,将"\\\\.\\I:\\dataq"改成("\\\\.\\I:"就正常了,是不是CreateFile函数中的路径不对啊?谢谢了
十万铁骑 2012-09-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
那就先创建一个目录啊
BOOL CreateDirectory(
LPCTSTR lpPathName, // directory name
LPSECURITY_ATTRIBUTES lpSecurityAttributes // SD);

或者调用dos命令:mkdir \dir_name
[/Quote]
嗯,已经实现了,十分感谢!
十万铁骑 2012-09-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
那就先创建一个目录啊
BOOL CreateDirectory(
LPCTSTR lpPathName, // directory name
LPSECURITY_ATTRIBUTES lpSecurityAttributes // SD);

或者调用dos命令:mkdir \dir_name
[/Quote]
嗯,已经实现了,十分感谢!
zwfgdlc 2012-09-05
  • 打赏
  • 举报
回复
把D\1.rar解压到d:\123\456\文件夹下,目标文件夹不存在则创建文件夹
"C:\Program Files\WinRAR\WinRAR.exe" x -iext -ow -ver -- "d:\1.rar" d:\123\456\
傻X 2012-09-05
  • 打赏
  • 举报
回复
看应用环境
如果你上面不用ShellExecute而用System的话,还是建议mkdir
System的使用会出现CMD界面的

所以还是用CreateDirectory比较好
Gloveing 2012-09-05
  • 打赏
  • 举报
回复
那就先创建一个目录啊
BOOL CreateDirectory(
LPCTSTR lpPathName, // directory name
LPSECURITY_ATTRIBUTES lpSecurityAttributes // SD);

或者调用dos命令:mkdir \dir_name

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧