【发布时间】:2012-05-26 02:06:02
【问题描述】:
我正在编写一个 c++ 程序,任务如下:
我有一个string proj_Name 和另一个字符串地址,我的程序旁边有一个名为root 的文件夹。现在我必须在根文件夹中创建一个名为proj_name 的文件夹,并将地址中的所有内容复制到这个新文件夹中。
当使用 linux 终端创建目录或处理文件时,我输入 mkdir proj_name 或 cp [src] [dst]。有人告诉我,要在我的程序中使用终端命令,我必须使用系统调用,但我不知道什么是系统调用或如何使用它。
除此之外,我可能会在根目录下创建更多项目文件夹,并且我必须能够访问我的程序中的每个文件夹。
如何使用 OOP 设计来处理这些文件和文件夹(例如,我从用户那里得到一个 proj_name,我必须在根目录中找到相应的文件夹,然后对该项目执行一些任务)?
当然我应该有一个_project_ class,但我不知道它需要什么成员变量。此外,有人告诉我,我可以像这样以递归方式复制文件夹:复制文件夹->打开它->为每个文件->复制文件->为每个文件夹从头开始执行此算法。
有人可以帮帮我吗?
提前致谢。
【问题讨论】:
-
man mkdir显示 shell 命令的文档。man 2 mkdir提供系统调用的文档。 -
另外,请注意系统调用是
mkdir,而不是mkfolder。别再叫它“文件夹”了!
标签: c++ linux system-calls file-management