Rumah >pembangunan bahagian belakang >C++ >Apakah Cara Terbaik untuk Menyalin Fail dengan Cekap dan Selamat?
Salin Fail dengan Cara yang Waras, Selamat dan Cekap
Apabila menyalin fail, adalah penting untuk berbuat demikian dengan cara yang mengekalkan integriti dan keselamatan data. Berikut adalah beberapa kaedah yang boleh dipercayai:
#include <fstream> int main() { std::ifstream source("from.ogv", std::ios::binary); std::ofstream dest("to.ogv", std::ios::binary); dest << source.rdbuf(); }
Kaedah ini menggunakan kaedah rdbuf() untuk menyalin kandungan secara terus daripada fail.
#include <unistd.h> #include <fcntl.h> int main() { int source = open("from.ogv", O_RDONLY); int dest = open("to.ogv", O_WRONLY | O_CREAT | O_TRUNC); char buf[BUFSIZ]; int bytesRead; while ((bytesRead = read(source, buf, BUFSIZ)) > 0) { write(dest, buf, bytesRead); } close(source); close(dest); }
Pendekatan ini memanfaatkan panggilan sistem peringkat rendah untuk manipulasi fail.
#include <sys/sendfile.h> int main() { int source = open("from.ogv", O_RDONLY); int dest = open("to.ogv", O_WRONLY | O_CREAT | O_TRUNC); struct stat stat_source; fstat(source, &stat_source); sendfile(dest, source, 0, stat_source.st_size); close(source); close(dest); }
Kaedah ini menurunkan penyalinan data terus ke kernel, berpotensi meningkatkan prestasi.
#include <boost/filesystem.hpp> int main() { boost::filesystem::copy_file("from.ogv", "to.ogv"); }
Pustaka ini menyediakan fungsi khusus untuk penyalinan fail yang cekap.
Apabila memilih kaedah, pertimbangkan faktor seperti:
Kesilapan yang Perlu Dielakkan:
Ingat, kaedah penyalinan fail yang optimum bergantung pada keperluan khusus. Penandaarasan dan ujian pendekatan yang berbeza disyorkan untuk mencari penyelesaian yang paling sesuai untuk keperluan anda.
Atas ialah kandungan terperinci Apakah Cara Terbaik untuk Menyalin Fail dengan Cekap dan Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!