首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么将数据在文件夹间转移

2012-08-10 
如何将数据在文件夹间转移?原目标是这样的:将文件夹A中的图像数据放到文件夹B中。但是想了想将问题广泛化,

如何将数据在文件夹间转移?
原目标是这样的:将文件夹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。

热点排行