如何复制已打开的文件?

时间:2013-05-06 13:43:31

标签: c++ winapi

我有一个文件句柄,它已被打开。

HANDLE h = ::CreateFile(...)

我想复制此文件。怎么做?我想做这样的事情:

CopyFile(h, "new_file.dat");

我知道有CopyFile(fileName, newFileName)函数,但似乎在使用this函数之前我必须关闭我的句柄。还有其他方法可以复制吗?

1 个答案:

答案 0 :(得分:2)

我猜你在Windows工作。问题是,在Windows打开文件时,默认情况下会阻止其他打开(复制也会打开文件)。据我所知,CreateFile有一个允许以共享模式打开文件的标志。根据定义,该标志应该可以解决您的问题。