Bir dosyayı C++ kullanarak bir klasörden başka bir klasöre nasıl kopyalarım?Bir klasörden başka bir klasöre dosya kopyalama
cevap
Boost C++ kitaplıklarını kullanmak istiyorsanız, filesystem::copy_file()'a bakın. bazı potansiyel karmaşık sorunlar etrafında tefsirler
#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;
}
:
için yararlı bir adımdır. Şimdi copy_file C++ başlangıcının C++ 14'ten beri bir parçasıdır. – Tecoberg
Bu minimal gerekli kodu olmalıdır: hata işleme dosya adı karakteri Burada
copy_file kapsayan bir önceki soru() var kodlamalar ... ama sana bir başlangıç verebilir.Aşağıdaki kod, tüm dosyaları bir dizinden diğerine kopyalayacaktır. Ben elle yazmak zorunda kalmadan kaynak dosya adını almak için std::filesystem::path::filename
kullandım
#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();
}
}
: C++ 17'den std::filesystem::copy_file
ile
#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 'ya hoş geldiniz ... Yazınızı iyileştirmek için bunu silmeyi veya bu sorunları ele almayı düşünün 1. bu çalışma kodu değil,' ifadeleriyle ilgili ifadelerinizde bir hata sürüsü var. ' ve '..' .. ve boşluk bıraktığınız yerdeki yazım hatalarını unutma. 2. Buradaki soruya cevap vermediniz. Oluşturduğunuz bir soruya cevap verdiniz. 3. soru C++ ve Ubuntu için ... pencerelere özel şeyler kullanarak burada yararlı değildir 4. Lütfen kodunuzu girerek okunabilir – UpAndAdam
C++ kod çalışan
Onun. Ancak, std::filesystem::copy
ile size hiç hedef yoluna dosya adı geçen atlayabilirsiniz:
fs::copy(sourceFile, targetParent, fs::copy_options::overwrite_existing);
değiştirin hem işlevleri davranışını std::filesystem::copy_options
ile.
- 1. Telefongap kullanarak bir dosya bir klasörden android bir klasöre başka bir klasöre nasıl taşınır/kopyalanır?
- 2. Bir klasöre bir dosya eklendiğinde VBScript'i tetikle
- 3. Kaynak klasörden bir dosya okuma
- 4. Dizinin bir dosya listesini kopyalama
- 5. başka düzeyde bir klasörden bir sınıf alamıyor
- 6. Verileri başka bir tabloya kopyalama
- 7. Nesneyi başka bir nesneye kopyalama
- 8. Başka bir klasörden python alma başarısız oldu
- 9. Bir Grafik Nesnesini başka bir dosyaya kopyalama
- 10. Klasörden dosya sayısı
- 11. MVC şablonu varsayılandan başka klasörden (EditorTemplates/DisplayTemplates)?
- 12. Ruby on Rails dosyasına bir dosya kopyalama
- 13. Bir projeden diğerine dosya kopyalama maven
- 14. Dizinde Kopyalama görevini kullanarak bir dizini kopyalama
- 15. Bir dosyayı php kullanarak başka bir klasöre nasıl taşıyabilirim?
- 16. Kısmi bir formdan başka bir klasöre nasıl başvurabilirim?
- 17. ASP.NET Sanal Yol Haritalar İzin Verilmeyen Başka Bir Uygulamaya Dön
- 18. svn deposunda önceki bir sürümden dosya kopyalama
- 19. jsch kitaplığında sftp dosyasına bir dosya kopyalama
- 20. Dosya Kopyalama ve Yeniden Adlandırma VBScript
- 21. Dosyaları bir klasörden diğerine taşıma C#
- 22. SSIS'de farklı bir klasöre alınamayan bir dosya taşıyın mı?
- 23. Jenkins'i belirli bir klasöre RHEL
- 24. W3C Bir blogdaki başka bir postayı başka bir klasöre kopyaladıktan sonra RSS hatası
- 25. Ruby dosya kopyalama kopyası
- 26. cwd kullanarak bir klasörü kopyalama
- 27. AngularJS - Belirli bir klasörden dosya isimleri nasıl listelenir?
- 28. Bir klasörden dosya adı listesini almak için Java kodu
- 29. PHP'de htdocs içindeki bir klasörden dosya nasıl eklenir?
- 30. Başka bir uygulamada dosya aç
'cp' komutunu kullanmak veya' cp' için bir klon yazmak ister misiniz? –
cp – user1165435
için bir klon yazmak istiyorum komutları uygulamak istemiyorum. Başarılı kopyadan sonra dosyayı ilk klasörden silmek istiyorum. yardıma ihtiyacım var. – user1165435