虚拟文件系统列表

时间:2013-10-05 16:41:15

标签: c++ c

我想将文件/文件夹列表存储在虚拟树/列表中。也许是矢量或类似的。任何人都知道如何管理这个?我有两种类型的项目:文件夹(节点)和文件。我必须模拟不同子级别的文件夹。 它必须类似于Treeview。每个节点都可以有一个可以有子节点的子节点。我需要删除文件或文件夹(及其子文件夹和文件)。

也许链接或提示会有所帮助。

1 个答案:

答案 0 :(得分:0)

你可以利用多态性。

class FileSystemElement{
...
}

class Folder: public FileSystemElement{
...
public:
    std::list<FileSystemelement*> subfolders;
}

class File: public FileSystemElement{
...
}

然后可能是这样的:

class FileSystem{
public:
    FileSystem();
    ~FileSystem();
    void removeFile(std::string path);
    void addFile(std::string path, void* data, size_t size);
    std::list<File*> filesInFolder(std::string path);
    ...
private:
    std::list<FileSystemElement*> filesystem;
}

删除和添加例如由普通std::list addremove方法

完成