C++を使用してあるフォルダから別のフォルダにファイルをコピーするにはどうすればよいですか?フォルダから別のフォルダにファイルをコピーする方法
答えて
Boost C++ライブラリを使用する場合は、filesystem::copy_file()をご覧ください。
ここCOPY_FILEをカバーする前の質問()です:エラー処理、ファイル名の文字:それはいくつかの潜在的に複雑な問題を中心にグロス
#include <fstream>
// copy in binary mode
bool copyFile(const char *SRC, const char* DEST)
{
std::ifstream src(SRC, std::ios::binary);
std::ofstream dest(DEST, std::ios::binary);
dest << src.rdbuf();
return src && dest;
}
int main(int argc, char *argv[])
{
return copyFile(argv[1], argv[2]) ? 0 : 1;
}
:
copy_fileはC++から始まってC++ startの一部です。 – Tecoberg
これは最小限のコードに必要でなければなりませんエンコーディング...しかし、あなたにスタートを与えることができます。
以下のコードは、すべてのファイルを1つのディレクトリから別のディレクトリにコピーします。
C++ 17からC++でその作業コードstd::filesystem::copy_file
で
#include <windows.h>
/*
BOOL Copy(char r_szPath[1024], char r_szDir[1024])
{
char l_szTemp[2048] = {0};
sprintf(l_szTemp,"%s\%s"r_szPath,r_szDir);
if(IsDirectory(
}*/
#include <stdio.h>
#include<conio.h>
BOOL __Copy(char r_szSrcPath[1024],char r_szDesPath[1024])
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
char l_szTmp[1025] = {0};
memcpy(l_szTmp,r_szSrcPath,1024);
char l_szSrcPath[1025] = {0};
char l_szDesPath[1025] = {0};
memcpy(l_szSrcPath,r_szSrcPath,1024);
memcpy(l_szDesPath,r_szDesPath,1024);
char l_szNewSrcPath[1025] = {0};
char l_szNewDesPath[1025] = {0};
strcat(l_szTmp,"*");
hFind = FindFirstFile(l_szTmp, &FindFileData);
if(hFind == NULL) return FALSE;
do
{
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if(strcmp(FindFileData.cFileName,"."))
{
if(strcmp(FindFileData.cFileName,".."))
{
printf ("The Directory found is %s<BR>, FindFileData.cFileName);
sprintf(l_szNewDesPath,"%s%s\",l_szDesPath,FindFileData.cFileName);
sprintf(l_szNewSrcPath,"%s%s\",l_szSrcPath,FindFileData.cFileName);
CreateDirectory(l_szNewDesPath,NULL);
__Copy(l_szNewSrcPath,l_szNewDesPath);
}
}
}
else
{
printf ("The File found is %s<BR>, FindFileData.cFileName);
char l_szSrcFile[1025] = {0};
char l_szDesFile[1025] = {0};
sprintf(l_szDesFile,"%s%s",l_szDesPath,FindFileData.cFileName);
sprintf(l_szSrcFile,"%s%s",l_szSrcPath,FindFileData.cFileName);
BOOL l_bRet = CopyFile(l_szSrcFile,l_szDesFile,TRUE);
}
}
while(FindNextFile(hFind, &FindFileData));
FindClose(hFind);
return TRUE;
}
int main(int argc, char *argv[])
{
__Copy("C:\fcdb\","E:\sandy\");
getch();
return 0;
}
ようこそSO ...あなたの投稿を改善するためには、それを削除したり、これらの問題に対処することを検討してください。1.これは動作するコードではなく、 '。'に関するif文に誤りがあります。 '..' ..あなたがスペースを省略したあなたのインクルードのタイプミスを忘れないでください。あなたは手元にある質問に答えなかった。あなたはあなたが作成した質問に答えました。 3.質問はC++とUbuntuのためです... Windows固有のものを使うのはここでは役に立ちません。4.あなたのコードをインデントして、読めるようにしてください – UpAndAdam
:
#include <exception>
#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
fs::path sourceFile = "path/to/sourceFile.ext";
fs::path targetParent = "path/to/target";
auto target = targetParent/sourceFile.filename(); // sourceFile.filename() returns "sourceFile.ext".
try // If you want to avoid exception handling, then use the error code overload of the following functions.
{
fs::create_directories(targetParent); // Recursively create target directory if not existing.
fs::copy_file(sourceFile, target, fs::copy_options::overwrite_existing);
}
catch (std::exception& e) // Not using fs::filesystem_error since std::bad_alloc can throw too.
{
std::cout << e.what();
}
}
私はそれを手動で入力することなく、ソースファイル名を取得するためにstd::filesystem::path::filename
を使用しました。しかし、std::filesystem::copy
であなたはすべてのターゲットパスにファイル名を渡す省略することができます:
fs::copy(sourceFile, targetParent, fs::copy_options::overwrite_existing);
変更std::filesystem::copy_options
との両方の機能のふるまい。
- 1. 1つのフォルダから別のフォルダに.mp3ファイルをコピーする
- 2. あるフォルダから別のフォルダに画像をコピーする
- 3. vbscriptingを使用してあるフォルダから別のフォルダにファイルをコピーする
- 4. ファイルをあるフォルダから別のフォルダにコピーするためのUnixシェルスクリプト
- 5. 1つのフォルダから他のフォルダにファイルをコピーする方法#
- 6. xファイルをフォルダから別のファイルにコピーする
- 7. 複数のフォルダから別の複数のフォルダにファイルをコピーするLinux
- 8. bashスクリプトを使って、すべての* .htmlファイルをあるフォルダから別のフォルダにコピーする方法は?
- 9. phonegapを使って、あるフォルダからアンドロイドの別のフォルダにファイルを移動/コピーする方法は?
- 10. Androidのプログラムでギャラリーから別のフォルダに画像ファイルをコピーする方法
- 11. コマンドプロンプトから特定のファイルを別のフォルダにコピーする方法
- 12. ファイルをモデルのフォルダから別のフォルダに移動する方法は?
- 13. 1時間ごとにフォルダから別のファイルにコピーする
- 14. .jarファイルからローカルドライブにフォルダをコピーする方法
- 15. 別のフォルダからC++の特定のファイルにコピーする
- 16. 複数のファイルを1つの共有フォルダから別のフォルダ共有にコピー
- 17. フォルダから新しいフォルダにファイルをコピーする
- 18. Bash、フォルダから別のファイルにコピーする
- 19. ファイルを別のフォルダ構造にコピー
- 20. jenkinsのあるウィンドウでフォルダの内容を別のフォルダにコピーする方法
- 21. あるフォルダから別のフォルダにファイルを移動する
- 22. 1つのフォルダを内容がJavaの別のフォルダにコピーする方法
- 23. すべてのファイルをtxtファイルのパスからフォルダにコピーする方法は?
- 24. AWS S3のあるフォルダから別のフォルダにデータを移動/コピーする
- 25. ファイルからフォルダへのファイルのコピー
- 26. 1つのフォルダから他のフォルダに画像をコピーする方法
- 27. 1つのフォルダから別のフォルダにアクセス許可をコピーする
- 28. Chekout複数のgitリポジトリを別のフォルダにコピーし、Jenkinsでそれらのファイル/フォルダをコピーする
- 29. ソースフォルダから異なるコピー先フォルダにファイルをコピーする
- 30. 作成日をフォルダ名にしてファイルをフォルダにコピーする方法は?
'cp'コマンドを使用するか、' cp'のクローンを書きますか? –
私はcpのクローンを書きたい – user1165435
私はexecteコマンドをしたくありません。私は正常にコピーした後、私は最初のフォルダからファイルを削除したい。助けが必要。ありがとう – user1165435