2016-07-05 120 views
2

複製文件夾(及其全部內容)從adress1(文件夾的地址)到c的adress2的最佳方式是什麼?我不想把它複製到一個緩衝區,然後保存它,因爲它可能含有大文件複製文件夾在c

+1

當前的C++標準沒有文件夾的概念。你可以使用'system()'和你的操作系統的相應命令。 –

+0

boost:文件系統,在C++的情況下(你標記了它)。在C - 只有平臺的API或系統() – Starl1ght

+0

對於C++請閱讀以下問題:http://stackoverflow.com/questions/8593608/how-can-i-copy-a-directory-using-boost-filesystem – alexeykuzmin0

回答

0

如果你正在尋找自己實現,看看this代碼

如果不是,你這一關鍵有執行,你可以使用操作系統的cp命令,而不是在你的代碼中使用Windows的system('cp',...)system('xcopy',...)

總之,每一個實施將緩衝一些要複製的文件(你控制的緩衝區,如果你實現它自己的大小),例如:

說你要複製大小10000個字節
的文件X 對於大小爲100字節的緩衝區,您將循環100次填充緩衝區並寫入目標文件

+1

*「你可以使用操作系統的'cp'命令「* - 假設操作系統有一個'cp'命令。 Windows沒有,並且因爲問題是特別要求Windows,所以我將不得不冷靜地回答這個問題。 – IInspectable

+0

你現在可以上癮嗎? –

+0

不是.OP正在要求*「最佳」*方式。調用'system'是 - 可以說 - 最糟糕的。使用shell的優化文件和文件夾複製基礎結構。在單個卷內移動文件時,報告錯誤,提供進度反饋以及速度非常快。 – IInspectable