文件夹复制VC++

发布于 2024-08-26 18:17:37 字数 65 浏览 6 评论 0原文

我想将目录从一个驱动器复制到另一个驱动器。 我选择的目录包含许多子目录和文件。 我如何使用 vc++ 实现相同的功能

i want to copy a directory from one drive to another drive.
My selected directory contain many sub directories and files.
How can i implement the same using vc++

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

来日方长 2024-09-02 18:17:37

SHFileOperation() API 函数是主力复制文件的功能。它支持递归目录。查看 SHFILEOPSTRUCT 结构中的可用选项控制副本。

The SHFileOperation() API function is the workhorse function for copying files. It supports recursing directories. Review the options available in the SHFILEOPSTRUCT structure to control the copy.

恋竹姑娘 2024-09-02 18:17:37

艰难的方式。单独复制每个文件。

使用 FindFirst()FindNext() 迭代目录的内容
使用 SetCurrentDirectory() 进出目录
使用 CreateDirectory() 创建新的文件夹树
最后,使用 CopyFile() 复制实际文件

The hard way. copy every file individually.

Use FindFirst() and FindNext() to iterate over the content of a directory
Use SetCurrentDirectory() to go in and out of directories
Use CreateDirectory() to create the new folders tree
and finally, use CopyFile() to copy the actual files

痴梦一场 2024-09-02 18:17:37

如果您有权访问 boost 库,这是您的朋友:

http://www.boost.org/doc/libs/1_42_0/libs/filesystem/doc/index.htm

查看教程以获取使用文件系统迭代器的精彩示例。

让您开始:

#include <iostream>
#include “boost/filesystem.hpp”
int main(int argc, char *argv[])
  {
  boost::filesystem::path path1("/usr/local/include"); // your source path
  boost::filesystem::path::iterator pathI = path1.begin();
  while (pathI != path1.end())
    {
    std::cout << *pathI << std::endl; // here you could copy the file or create a directory
    ++pathI;
    }
  return 0;
  }

If you have access to the boost library this is your friend:

http://www.boost.org/doc/libs/1_42_0/libs/filesystem/doc/index.htm

Check the tutorial for nice examples using a filesystem iterator.

To get you started:

#include <iostream>
#include “boost/filesystem.hpp”
int main(int argc, char *argv[])
  {
  boost::filesystem::path path1("/usr/local/include"); // your source path
  boost::filesystem::path::iterator pathI = path1.begin();
  while (pathI != path1.end())
    {
    std::cout << *pathI << std::endl; // here you could copy the file or create a directory
    ++pathI;
    }
  return 0;
  }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文