是否有Windows API以编程方式通过Windows资源管理器剪切/复制/粘贴文件?

Syn*_*ech 9 windows clipboard file-io windows-explorer

我知道SHFileOperation可用于使用Windows资源管理器执行文件操作,但它只执行源和目标都已知的完整文件操作.

是否有API允许应用程序在Windows资源管理器中从应用程序中剪切,复制或粘贴?

回答几个问题:

  • 使用Windows资源管理器执行文件/文件夹操作将大大简化移动多个对象.这对于移动文件夹及其内容尤其重要,因为MoveFile不支持将文件夹移动到不同的卷.

  • 使用Windows资源管理器执行文件/文件夹操作将允许将操作添加到Windows资源管理器的撤消缓冲区,以便可以撤消它们,否则无法撤消使用控制台应用程序/命令提示符执行的操作.

我确信我已经看到以编程方式执行Windows资源管理器动词,但我似乎无法找到这样做的方法.

Cod*_*ray 1

很难想象为什么会有这样的功能存在,或者如果存在的话会有什么好处。

\n\n

为了方便用户,提供了剪切/复制和粘贴功能。它允许他们稍后将某些内容移动/复制到其他地方。实现剪切/复制和粘贴功能的应用程序可能不知道数据最终将粘贴到哪里,但这没关系,因为用户仍然知道。

\n\n

但是执行剪切/复制粘贴操作的应用程序没有多大意义,因为为了使“粘贴”部分工作,应用程序必须知道该项目将粘贴到哪里。如果它知道这一点,那么它就可以调用SHFileOperation您已经知道的函数。

\n\n

如果您真的只是在谈论为用户提供剪切/复制/粘贴项目的能力,那么您将需要像 Windows 一样使用剪贴板\xe2\x80\x94。剪切或复制某个项目时,它会被放置在剪贴板上。粘贴项目时,将检索剪贴板的当前内容。使用 Windows剪贴板 API 函数与剪贴板进行交互。

\n

  • 这是一个示例:您位于控制台处。您输入“C:\>cut foobar.txt”,然后输入“C:\Somewhere\Else>paste”。它很像“pushd/popd”。 (2认同)
  • @Down:哪个问题我没有回答?最后一段具体解释了如何使用剪贴板 API 来完成他的要求。 (2认同)