मैं C++ का उपयोग कर लिनक्स पर फ़ाइलों को स्थानांतरित करने का प्रयास कर रहा हूं। समस्या यह है कि स्रोत फ़ाइल और गंतव्य फ़ोल्डर विभिन्न विभाजनों में हो सकता है। तो मैं बस फ़ाइलों को स्थानांतरित नहीं कर सकता। ठीक है। मैंने फ़ाइल की प्रतिलिपि बनाने और पुराने को हटाने का फैसला किया।लिनक्स पर C++ में फ़ाइल को स्थानांतरित करने का तेज़ तरीका
//-----
bool copyFile(string source, string destination)
{
bool retval = false;
ifstream srcF (source.c_str(), fstream::binary);
ofstream destF (destination.c_str(), fstream::trunc|fstream::binary);
if(srcF.is_open() && destF.is_open()){
destF << srcF.rdbuf(); //copy files binary stream
retval = true;
}
srcF.close();
destF.close();
return retval;
}
//-----
अब मेरी समस्या। मुझे एहसास हुआ, यह विधि बहुत धीमी है। 100 एमबी के लिए 47 सेकंड लगते हैं। बस कंसोल कमांड के साथ एक फ़ाइल की प्रतिलिपि बनाएँ 2-3 सेकंड लेता है।
क्या किसी के पास कोई विचार है?
निम्नलिखित उत्तर आपकी सबसे अच्छी शर्त है: http://stackoverflow.com/questions/10195343/copy-a-file-in-an-sane-safe-and- कुशल-way –