如何将数据在文件夹间转移?
原目标是这样的:将文件夹A中的图像数据放到文件夹B中。但是想了想将问题广泛化,即如何用简单的方法,将文件夹A中的文件(比如txt、jpg、bmp等等)放到文件夹B中呢?
希望各位多多指教,感激不尽,拜谢拜谢
[解决办法]
win32 api 里查查关于文件的操作
[解决办法]
Moves an existing file or directory, including its children, with various move options.
移动文件夹,包括子文件夹,各种东西一齐过去了。
BOOL WINAPI MoveFileEx(
__in LPCTSTR lpExistingFileName,
__in_opt LPCTSTR lpNewFileName,
__in DWORD dwFlags
);
或者, system函数 执行 xcopy 命令
[解决办法]
- C/C++ code
WIN32_FIND_DATA FileData; HANDLE hSearch; DWORD dwAttrs; char szDirPath[] = %%2; char szNewPath[MAX_PATH]; char szHome[MAX_PATH]; BOOL fFinished = FALSE; if (!CreateDirectory(szDirPath,NULL)) { //不能创建新的目录 return; } BOOL bWorking = finder.FindFile(%%1+"\\*.*"); while (bWorking) { bWorking = finder.FindNextFile(); if(finder.IsDirectory()){ hSearch = FindFirstFile(finder.GetFilePath()+"\\*.*", &FileData); if (hSearch == INVALID_HANDLE_VALUE) { return; } while (!fFinished) { lstrcpy(szNewPath, szDirPath); lstrcat(szNewPath, FileData.cFileName); if (CopyFile(FileData.cFileName, szNewPath, FALSE)) { dwAttrs = GetFileAttributes(FileData.cFileName); if (!(dwAttrs & FILE_ATTRIBUTE_READONLY)) { SetFileAttributes(szNewPath, dwAttrs | FILE_ATTRIBUTE_READONLY); } } else { //不能复制文件 return; } if (!FindNextFile(hSearch, &FileData)) { if (GetLastError() == ERROR_NO_MORE_FILES) { //遍历文件夹完成 fFinished = TRUE; } else { //找不到下一个文件 return; } } } FindClose(hSearch); RemoveDirectory(finder.GetFilePath().GetBuffer(0)); } }
[解决办法]
这个可以通过c/c++调用系统API来完成。
比如windows系统肯定有CopyFile或者MoveFile之类的API。