如何使用VC ++从闪存驱动器复制每个文件粘贴到文件夹和格式化闪存驱动器?

时间:2013-02-01 15:48:03

标签: c visual-c++ command-line

我想在闪存驱动器中构建易清理病毒,首先复制闪存驱动器中的每个文件以粘贴到另一个文件夹中。之后,格式化闪存驱动器并将文件夹从文件夹复制回闪存驱动器。我用的是VC ++ MFC。我试图找到关于复制和格式化驱动器功能,但我找不到复制所有文件的代码。所以,我尝试在system()函数中运行命令行,但是当我运行

  

system(“格式f:/ Q”);

需要输入。 我想使用VC ++格式的驱动器,按下任意键,如果没有显示DOS窗口,那将非常好。请帮助我。

2 个答案:

答案 0 :(得分:0)

  • 要复制文件,可以使用ShFileOperation函数。
  • 要格式化,您可以使用SHFormatDrive;但也会警告用户。

我认为没有一个“高级”API可以让您以静默方式格式化磁盘;这是出于安全原因,你不希望恶意的人在代码中添加“烂复活节彩蛋”来格式化用户的磁盘。

祝你好运。

答案 1 :(得分:0)

几年前我需要相同的东西,并且Windows不能使API可用于轻松格式化磁盘,您必须自己执行所有低级操作。 AutoFormat for Windows是一个修补的命令行格式实用程序,不需要用户干预。

很遗憾,您无法使用SHFileOperation和co。静默地将文件复制到外部USB。如果您使用FOF_SILENTFOF_NO_UI复制到Windows XP SP3上的USB操作will silently and inexplicably fail。如果您没有定位到Windows XP,那么无论如何,这里都是一个如何在没有用户干预的情况下使用SHFileOperationcopy a directory's contents recursively to an external drive的示例。