我正在制作一个基本的文件浏览器,所以我想在我的程序中包含复制和粘贴功能。我不在任何GUI环境和win32api中工作。
我有LCRS树,
其中C:驱动器是父驱动器 并且它的第一个文件夹是左子,其余的是右兄弟
因此,当我选择任何子节点或兄弟节点进行复制并选择其目的地时,所有内容都应粘贴在所需的位置。
可以使用带有cp命令和mkdir()函数的system()来完成。还有另一种方式吗?
还告诉我如何在相关应用程序中打开文件?像abc.txt一样在记事本中打开。
答案 0 :(得分:0)
这是使用SHFileOperation的包装器。它可用于复制大多数文件或目录;有一些例外(例如,尝试将您无权访问的目录或特殊文件夹(如My Documents)复制到远程网络)。成功后它会返回0
。
#include <Shellapi.h>
int Copy(PCZZTSTR source, PCZZTSTR destination) {
return SHFileOperation(&(SHFILEOPSTRUCTW){ .wFunc = FO_COPY,
.pFrom = source,
.pTo = destination,
.fFlags = FOF_SILENT
| FOF_NOCONFIRMMKDIR
| FOF_NOCONFIRMATION
| FOF_NOERRORUI
| FOF_NO_UI });
}