Jak skopiować plik z jednego folderu do innego przy użyciu C++?Jak skopiować plik z folderu do innego folderu?
Odpowiedz
Jeśli jesteś gotów użyć biblioteki Boost C++, przyjrzeć filesystem::copy_file().
Oto poprzednie pytanie obejmujące copy_file():
Teraz copy_file jest częścią C++ start od C++ 14. – Tecoberg
ten powinien być minimalny kod wymagany:
#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;
}
to błyszczyki wokół niektórych potencjalnie skomplikowanych zagadnień: obsługę błędów, znak nazwy pliku kodowania ... ale może dać ci start.
Poniższy kod kopiuje wszystkie pliki z jednego katalogu do drugiego.
swój kod pracujących w C++
#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;
}
witamy w SO ... aby ulepszyć twój post, rozważ usunięcie go lub rozwiązując te problemy 1. to nie działa kod, masz mnóstwo błędów w swoich instrukcjach if dotyczących "." i ".." .. i nie zapomnij literówki w swoim miejscu, w którym pominięto spację. 2. nie odpowiedziałeś na to pytanie. Odpowiedziałeś na pytanie, które utworzyłeś. 3. pytanie dotyczy C++ i Ubuntu ... używanie specyficznych dla systemu Windows rzeczy nie jest tutaj użyteczne 4. Proszę wcięcie kodu tak, aby było czytelne – UpAndAdam
Z std::filesystem::copy_file
z C++ 17:
#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();
}
}
Użyłem std::filesystem::path::filename
celu pobrania pliku źródłowego bez konieczności go wpisać ręcznie. Jednak z std::filesystem::copy
można pominąć przechodzącą nazwy pliku do ścieżki docelowej w ogóle:
fs::copy(sourceFile, targetParent, fs::copy_options::overwrite_existing);
zmienić zachowanie obu funkcji z std::filesystem::copy_options
.
- 1. Jak przenieść/skopiować plik z jednego folderu do innego folderu w Androidzie za pomocą phonegap?
- 2. jak skopiować plik do wspólnego folderu Capistrano
- 3. Jak dołączyć plik z innego folderu?
- 4. Plik wsadowy do kopiowania plików z jednego folderu do innego folderu
- 5. Jak skopiować plik obrazu z galerii do innego folderu programowo w Androidzie
- 6. Kopiowanie nieśledzonego folderu do innego oddziału
- 7. Jak przenieść projekt Netbeans do innego folderu?
- 8. Skopiuj plik do folderu zasobów
- 9. Jak skopiować obrazy do folderu internetowej z assetic
- 10. Jak dołączyć plik js.erb do folderu widoku
- 11. kopiowanie całej zawartości folderu do innego folderu za pomocą pliku wsadowego?
- 12. Wykonaj zadanie ant exec z innego folderu
- 13. Jak skonfigurować nginx do ładowania try_files z innego folderu?
- 14. jak skopiować kilka plików do folderu używając xcopy
- 15. Skopiuj plik z jednego folderu do drugiego za pomocą vbscripting
- 16. Wyodrębnij plik zip do lokalnego folderu
- 17. silverstripe - uprawnienia do plików dla folderu folderu
- 18. lista kopiowanie plików z jednego folderu do innego w R
- 19. Jak uruchomić grunt z innego folderu niż mój projekt główny
- 20. Pomost: rozpakuj plik .war do określonego folderu
- 21. Maven: Jak umieścić słoik wyjściowy do innego folderu
- 22. Jak skopiować plik z katalogu do innego katalogu w Javie
- 23. PHP - Przeniesienie pliku do innego folderu na serwerze
- 24. kopiowanie katalogu z zasobów do folderu danych
- 25. Gradle: wyklucz plik z folderu zasobów Androida
- 26. Jak skopiować pliki DLL do tego samego folderu, co plik wykonywalny za pomocą CMake?
- 27. Maven: Włączenie folderu META-INF do folderu klas
- 28. Jak mogę uzyskać typ ze złożenia załadowanego z innego folderu?
- 29. Jak użyć Ant do skopiowania folderu?
- 30. Jak skopiować plik z jednego katalogu do innego katalogu, tworząc folder, jeśli ten folder nie istnieje
Czy chcesz użyć polecenia 'cp' lub napisać klon dla' cp'? –
Chcę napisać klon do cp – user1165435
Nie chcę wypowiadać poleceń. Po pomyślnym skopiowaniu chcę usunąć plik z pierwszego folderu. potrzebuję pomocy. doceniam – user1165435