0

我正在尝试使用 WIN32 API 中的命令行将 KFC 文件夹从 D 驱动器移动到 C 驱动器。在肯德基文件夹中还有一个文件夹:“新建文件夹”。我尝试使用此代码,但它不能?

CreateProcess(  L"C:\\WINDOWS\\system32\\cmd.exe",// path to application to run command
                                _T("/C MD C:\\KFC"),
                                NULL, 
                                NULL, 
                                FALSE, 
                                CREATE_NO_WINDOW, 
                                NULL, 
                                NULL, 
                                &startupInfo, 
                                &processInformation );
CreateProcess(  L"C:\\WINDOWS\\system32\\cmd.exe",// path to application to run command
                                _T("/C XCOPY D:\\KFC C:\\KFC /E"),
                                NULL, 
                                NULL, 
                                FALSE, 
                                CREATE_NO_WINDOW, 
                                NULL, 
                                NULL, 
                                &startupInfo, 
                                &processInformation );


CreateProcess(  L"C:\\WINDOWS\\system32\\cmd.exe",// path to application to run command
                                _T("/C RD D:\\KFC /S/Q"),
                                NULL, 
                                NULL, 
                                FALSE, 
                                CREATE_NO_WINDOW, 
                                NULL, 
                                NULL, 
                                &startupInfo, 
                                &processInformation );

感谢您的帮助,

4

1 回答 1

1

您可以使用SHFileOperation; 例如:

SHFILEOPSTRUCT sfo = { 0 };
sfo.wFunc = FO_MOVE;
sfo.pFrom = _T("D:\\KFC\0");
sfo.pTo = _T("C:\\\0");
sfo.fFlags = FOF_ALLOWUNDO;
SHFileOperation(&sfo);

请注意,pFrompTo字符串都以双 NULL 结尾。

如果您想隐藏进度条等,您可以使用FOF_NO_UI标志或其他选项来执行此操作。

您也可以IFileOperation以类似的方式使用该界面。

于 2013-04-10T04:00:58.460 回答