c++ - 如何复制已经打开的文件?

标签 c++ winapi

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

HANDLE h = ::CreateFile(...)

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

CopyFile(h, "new_file.dat");

我知道有 CopyFile(fileName, newFileName) 函数,但似乎我必须先关闭我的句柄才能调用此函数。还有其他复制方法吗?

最佳答案

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

关于c++ - 如何复制已经打开的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16400082/

相关文章:

c - WinAPI 获取鼠标光标图标

multithreading - 如何使我的应用程序在多个内核上运行?

c++ - 在Python中解析.c/.cpp/.py源文件以获取包含的函数列表

c++ - Qpushbutton点击并不总是有效

c# - 设置内容边框的圆角半径

java - 使用 Java 在没有额外边缘的情况下在 Windows 中截取前台应用程序屏幕截图

c++ - 跟踪 native 调用

c++ - 创建新 btConvexHullShape 时 Bullet Physics 第一次机会异常

c++ - 在 C++ 类型转换期间自动舍入 a

c++ - MFC : How to use C++ Global Object in C