首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将文件从回收站恢复到特定位置?

如何将文件从回收站恢复到特定位置?
EN

Stack Overflow用户
提问于 2015-03-19 02:17:22
回答 3查看 1.1K关注 0票数 1

我的目标是将特定的文件从回收站恢复到指定的位置,即不是恢复到其原始位置。我找到了this articlethis one,它们解释了如何枚举回收站中当前的文件。但它并没有告诉我如何做我需要的事情。

你知道怎么做吗?

EN

回答 3

Stack Overflow用户

发布于 2015-03-19 03:03:11

你可以通过模拟拖放来实现。使用IShellFolder::GetUIObjectOf()从回收站获取IDataObject接口,并为目标文件夹获取IDropTarget接口。然后,您可以调用IDropTarget::DragEnter(),然后调用IDropTarget::Drop(),文件将被移动到您的目标位置。

票数 2
EN

Stack Overflow用户

发布于 2015-03-19 11:51:32

从Windows Vista开始,可以使用IFileOperation将RecycleBin中的任何对象恢复到任何文件夹。使用示例:

代码语言:javascript
复制
procedure RestoreItem(AShellFolder: IShellFolder; AChild: PItemIDList; const ADestFolder: UnicodeString);
var
  Item: IShellItem;
  DestFolder: IShellItem;
  FileOperation: IFileOperation;
begin
  OleCheck(SHCreateItemWithParent(nil, AShellFolder, AChild, IShellItem, Item));
  try
    OleCheck(SHCreateItemFromParsingName(PWideChar(ADestFolder), nil, IShellItem, DestFolder));
    try
      OleCheck(CoCreateInstance(CLSID_FileOperation, nil, CLSCTX_ALL, IFileOperation, FileOperation));
      try
        OleCheck(FileOperation.MoveItem(Item, DestFolder, nil, nil));
        OleCheck(FileOperation.PerformOperations);
      finally
        FileOperation := nil;
      end;
    finally
      DestFolder := nil;
    end;
  finally
    Item := nil;
  end;
end;
票数 2
EN

Stack Overflow用户

发布于 2021-06-05 22:38:14

拖放是最好的方式。

然后你可以用C++,Python,CMD,PowerShell等编写脚本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29129717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档