我試圖複製一個文件,但無論我嘗試,複製似乎只是幾個字節。C++複製文件。數據短缺
_file是一個ifstream設置爲二進制模式。
void FileProcessor::send()
{
//If no file is opened return
if(!_file.is_open()) return;
//Reset position to beginning
_file.seekg(0, ios::beg);
//Result buffer
char * buffer;
char * partBytes = new char[_bufferSize];
//Packet *p;
//Read the file and send it over the network
while(_file.read(partBytes,_bufferSize))
{
//buffer = Packet::create(Packet::FILE,std::string(partBytes));
//p = Packet::create(buffer);
//cout<< p->getLength() << "\n";
//writeToFile(p->getData().c_str(),p->getLength());
writeToFile(partBytes,_bufferSize);
//delete[] buffer;
}
//cout<< *p << "\n";
delete [] partBytes;
}
_writeFile是要寫入的文件。
void FileProcessor::writeToFile(const char *buffer,unsigned int size)
{
if(_writeFile.is_open())
{
_writeFile.write(buffer,size);
_writeFile.flush();
}
}
在這種情況下,我試圖複製一個zip文件。 但打開記事本中的原件和副本我注意到,雖然它們看起來相同,但它在複製缺少幾個字節的末尾是不同的。
有什麼建議嗎?
小建議:不要使用'_'來啓動變量名,其中大部分用途都是爲編譯器或標準庫保留的。 – ssube 2012-02-18 17:58:54
儘管我希望適用我自己的慣例,但這並不取決於我。 – Sidar 2012-02-18 18:02:01