我正在使用 Visual C++。如何将这个文件的内容复制到另一个文件?
UINT32 writeToLog(wstring log)
{
wfstream file1 (LOG_FILE_NAME, ios_base::out);
file1 << log;
file1.close();
// want to copy file1 to file2
return 0;
}
最佳答案
你到底想做什么?如果您需要数据的拷贝,可以将其读入并再次写回。如果您确实需要该文件的拷贝,则必须使用特定于操作系统的调用。
在许多情况下,读取文件数据然后再次将其写出到不同的文件是一个足够接近拷贝的近似值 - 如下所示:
ifstream file1(...);
ofstream file2(...);
std::copy(istream_iterator<char>(file1),istream_iterator<char>(),ostream_iterator<char>(file2));
然而,这实际上不是拷贝 - 它正在创建一个具有相同内容的新文件。它不会正确处理硬链接(hard link)或符号链接(symbolic link),它不会正确处理元数据,它只会“复制”default file stream。 .
如果您需要在 Windows 上复制文件,您应该调用 CopyFile 之一, CopyFileEx或 CopyFileTransacted取决于您的具体要求。
关于c++ - 如何在 Visual C++ 中复制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2763987/