2. Der Ansatz
Zuerst sollten wir uns den Ansatz überlegen.
Können wir überhaupt unser Problem rekursiv lösen?
Ich habe folgenden Ansatz gefunden:
Wir überprüfen zuerst, ob das zu erstellende Verzeichnis schon existiert. (Das ist unsere Abbruchbedingung. Wenn ja, machen wir nichts).
Wenn es noch nicht existiert, prüfen wir, ob das übergeordnete Verzeichnis existiert. Wenn ja, erstellen wir das Verzeichnis, dass uns übergeben wurde und sind fertig.
Wenn das übergeordnete Verzeichnis nicht existiert, überprüfen wir, ob das darüber existiert, und immer so weiter, bis endlich ein Verzeichnis existiert, was spätestens bei / so sein wird.
Was heißt das nun konkret an unserem Beispiel?
uns wird folgendes Verzeichnis übergeben Code:
/opt/lampp/htdocs/project/gallery_2/thumbs
und wir können annehmen, dass Code:
/opt/lampp/htdocs/project
existiert.
Nun überprüfen wir, ob Code:
/opt/lampp/htdocs/project/gallery_2
existiert.
Das ist nicht der Fall, also prüfen wir, ob Code:
/opt/lampp/htdocs/project
existiert.
Dies existiert und darum können wir Code:
/opt/lampp/htdocs/project/gallery_2
per mkdir() erstellen.
Nun können wir auch Code:
/opt/lampp/htdocs/project/gallery_2/thumbs
erstellen und wir sind fertig.
Unser Problem, Code:
/opt/lampp/htdocs/project/gallery_2/thumbs
zu erstellen, ist also eher das Problem, zuerst Code:
/opt/lampp/htdocs/project/gallery_2
und danach Code:
/opt/lampp/htdocs/project/gallery_2/thumbs
zu erstellen.
Und das Problem Code:
/opt/lampp/htdocs/project/gallery_2
zu erstellen, können wir ebenfalls in das Problem, zuerst Code:
/opt/lampp/htdocs/project
und dann Code:
/opt/lampp/htdocs/project/gallery_2
zu erstellen umwandeln.
Das Problem Code:
/opt/lampp/htdocs/project
zu erstellen, ist dagegen nicht mehr umwandelbar, da das Verzeichnis bereits existiert.
Lesezeichen