我想將目錄從一個驅動器複製到另一個驅動器。 我選擇的目錄包含許多子目錄和文件。 我該如何實現相同的使用vC++文件夾副本VC++
回答
的SHFileOperation() API函數是用於複製文件的主力作用。它支持遞歸目錄。查看SHFILEOPSTRUCT結構中可用的選項來控制副本。
SHFileOperation在Windows Vista +上正式棄用,它的刪除功能非正式「在Vista +上不行」。 – 2010-03-29 08:15:49
感謝您的寶貴幫助.. 其工作正常 – Sijith 2010-03-29 08:18:04
它* *不被棄用。 Vista只有另一個捕鼠器來做到這一點。 – 2010-03-29 08:28:17
困難的方式。單獨複製每個文件。
使用FindFirst()
和FindNext()
遍歷目錄 使用SetCurrentDirectory()
的內容出入目錄
使用CreateDirectory()
以創建新的文件夾樹
最後,使用CopyFile()
複製的實際文件
如果你有機會到Boost庫,這是你的朋友:
http://www.boost.org/doc/libs/1_42_0/libs/filesystem/doc/index.htm
使用文件系統迭代器檢查教程以獲得很好的示例。
爲了讓你開始:
#include <iostream>
#include 「boost/filesystem.hpp」
int main(int argc, char *argv[])
{
boost::filesystem::path path1("/usr/local/include"); // your source path
boost::filesystem::path::iterator pathI = path1.begin();
while (pathI != path1.end())
{
std::cout << *pathI << std::endl; // here you could copy the file or create a directory
++pathI;
}
return 0;
}
@downvoter:評論爲什麼這是downvoted將是有用的 – nabulke 2014-01-20 12:33:47
- 1. 螞蟻副本文件夾
- 2. 文件夾和文件的副本
- 3. 在MSDOS的文件夾和子文件夾副本
- 4. C中的文件夾結構副本#
- 5. 工作副本Unversion文件夾 - TortoiseSVN 1.7
- 6. 文本文件的副本
- 7. 使文件夾樹沒有文件的副本
- 8. 文件夾和文件的太多的副本
- 9. 如何在VC++中複製文件夾?
- 10. 涉及卷影副本文件夾的外部組件異常
- 11. 無數文件夾中的相同文件的副本...如何找到最深的副本?
- 12. 如何在OpenFileDialog控件中選擇文件的副本副本
- 13. Maven的副本的src /主/資源/ services文件夾到/ META-INF
- 14. BizTalk將無限副本發送到目標文件夾
- 15. TortoiseSVN v1.7 - 從V1.6升級工作副本文件夾時出錯
- 16. 副本OSX文件夾中的iOS目錄
- 17. 副本不拿起正確的源文件夾
- 18. 如何製作網站中的文件夾副本?
- 19. 從文件夾錯誤的unix程序副本
- 20. powershell副本創建額外的空文件夾
- 21. 在TFS 2010中將文件夾副本轉換爲分支
- 22. 僞霧S3文件副本
- 23. 文件副本更新
- 24. PHP海量文件副本
- 25. C#:文件副本通知
- 26. VC++ CLI/CLR通過網絡刪除文件/文件夾
- 27. 咕嚕副本任務不會複製父文件夾的文件到正確的文件夾
- 28. 創建文件的文件副本
- 29. 如何枚舉給定文件或文件夾的卷影副本?
- 30. 咕嘟咕嘟青菜副本空SCSS文件到目標文件夾
如果您需要便攜式解決方案或SHFileOperation(nobugz的回覆)以獲得最佳平臺集成,我會推薦boost(nabulke的回覆) - 它爲您提供基本上與explorer相同的「副本」。 – peterchen 2010-03-29 07:54:13