Witam, czy wiecie jak stworzyć Od razu pare folderów(tzn np. "C:\nowy\nowy\nowy...") poprzez funkcje CreateDirectory() ? wiem jak to zrobić poprzez mkdir jednak potrzebuje funkcji która mi zwróci błąd w przypadku niepowodzenia
0
0
Utwórz sobie klasę, która będzie przechowywać nazwę folderu i listę podfolderów. Wystarczy, że konstruktorem stworzysz obiekt i wywołasz zaprogramowaną metodę do tego i jest pięknie. Wtedy wywołanie metody budującej drzewo katalogów będzie wywoływać również dla podrzędnych katalogów, co da możliwość utworzenia drzewa :)
Przykład:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void CreateDirectory(string s) { cout << s << endl; }
class Directory
{
string name;
vector<Directory*> innerDirs;
public:
Directory(string n)
: name(n)
{
}
Directory* addSubdir(string name)
{
Directory *sub = new Directory(name);
innerDirs.push_back(sub);
return sub;
}
~Directory(void)
{
for(int i = 0; i < innerDirs.size(); i++)
delete innerDirs[i];
}
void buildTree(string path = "")
{
CreateDirectory(path + '/' + name);
for(int i = 0; i < innerDirs.size(); i++)
innerDirs[i]->buildTree(path + '/' + name);
}
};
int main()
{
Directory dir("main");
Directory *d = dir.addSubdir("abc")->addSubdir("def");
d->addSubdir("ghi");
d->addSubdir("jkl");
dir.addSubdir("ooo");
dir.buildTree();
return 0;
}
Wydruk:
/main
/main/abc
/main/abc/def
/main/abc/def/ghi
/main/abc/def/jkl
/main/ooo