21xrx.com
2024-12-22 22:59:20 Sunday
登录
文章检索 我的文章 写文章
如何在C++中将文件(夹)移入回收站?
2023-06-30 14:06:34 深夜i     --     --
C++ 文件移动 回收站 文件夹移动 编程技巧

在C++中,将文件(夹)移入回收站是很常见的操作。回收站是操作系统提供的一个重要的功能,它可以让用户在删除文件时不会永久地失去这些文件,而是可以将这些文件移入回收站中,随时可以用来恢复。下面将介绍在C++中如何将文件(夹)移入回收站。

首先,我们需要包含头文件"ShellAPI.h",这是Windows操作系统中负责管理外壳的API函数库。接下来,我们需要使用函数"SHFileOperation"来实现移入回收站的操作。这个函数可以执行指定的文件操作,包括复制、删除、重命名等等。

下面是一个简单的代码示例:


#include<ShellAPI.h>

int main()

{

  SHFILEOPSTRUCT fileop;

  fileop.hwnd = NULL;

  fileop.wFunc = FO_DELETE;

  fileop.pFrom = "C:\\Test\\example.txt";

  fileop.pTo = NULL;

  fileop.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION;

  fileop.fAnyOperationsAborted = FALSE;

  fileop.lpszProgressTitle = NULL;

  int ret = SHFileOperation(&fileop);

  if (ret != 0) {

    printf("Move to recycle bin failed! Error code: %d\n", ret);

  }

  else {

    printf("Move to recycle bin succeeded!\n");

  }

  return 0;

}

在上面的代码中,我们调用了"SHFileOperation"函数来执行删除操作,将"example.txt"文件移入回收站中。我们设置了参数"FO_DELETE"来指定删除操作,设置了参数"FOF_ALLOWUNDO"来允许撤销操作,设置了参数"FOF_NOCONFIRMATION"来不显示删除确认。

当"SHFileOperation"函数返回非零值时,说明移入回收站操作失败,我们输出错误代码;当返回零值时,说明移入回收站操作成功,我们输出成功提示信息。

上面的代码示例只能用来删除指定的文件,如果需要删除整个文件夹,可以把"pFrom"参数改为文件夹的路径,指定参数"FOF_SILENT | FOF_NOCONFIRMATION"来禁止确认提示。

总之,在C++中将文件(夹)移入回收站是一个相对容易的操作,只需要调用Windows提供的API函数库即可。当然,在使用时需要注意参数设置,确保操作成功,避免误删除重要文件。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复