Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Bestehenden Ordner umbenennen und Ordner löschen.

Bestehenden Ordner umbenennen und Ordner löschen.

bilabo
Beiträge gesamt: 29

15. Dez 2015, 15:02
Bewertung:

gelesen: 2744

Beitrag als Lesezeichen
Hallo,

kann man bestehende Ordner umbenennen bzw. löschen?

Habe folgendes gefunden:

aFolder.rename(newName)

weiss jetzt aber nicht wie ich das einem bestehendem Ordner mitgeben kann?

Schöne Grüße und vielen Dank schonmal für die Hilfe,

Bill

Bestehenden Ordner umbenennen und Ordner löschen.

Martin Fischer
  
Beiträge gesamt: 12494

15. Dez 2015, 15:22
Bewertung:

gelesen: 2724

Beitrag als Lesezeichen
Hallo Bill,

aFolder ist ein Folder-Objekt, das mit dem Befehl rename() umbenannt wird in newName.

Beispiel:

Code
var newName = 'Toast'; 
var aFolder = Folder('~/Desktop/Test');
aFolder.rename(newName);


Viele Grüße
Martin



(Dieser Beitrag wurde von Martin Fischer am 15. Dez 2015, 15:22 geändert)

Bestehenden Ordner umbenennen und Ordner löschen.

Hans Haesler
  
Beiträge gesamt: 5808

15. Dez 2015, 21:10
Bewertung:

gelesen: 2635

Beitrag als Lesezeichen
Hallo Bill,

zum zweiten Teil Deiner Frage: Ja, bestehende Ordner kann man löschen.

Zum Beispiel den Ordner "Test", welcher sich auf dem Schreibtisch befindet (wie in Martins Beispiel).

Code
var aFolder = Folder("~/Desktop/Test"); 
aFolder.remove();

Und der Ordner ist spurlos verschwunden. Das gelingt aber nur, wenn der Ordner leer ist. Der entsprechende Hinweis aus dem OMV, welchem Du vermutlich Dein Beispiel entnommen hast:

Zitat Deletes the folder associated with this object from disk immediately, without moving it to the system trash.
Folders must be empty before they can be deleted.

Mit vorgängigem Entfernen der Dateien:

Code
var aFolder  = Folder("~/Desktop/Test");  
var allFiles = aFolder.getFiles();
var nFiles = allFiles.length;
for (var n=0; n<nFiles; n++) {
allFiles[n].remove();
}
aFolder.remove();

Aber aufgepasst: Damit wird alles weggeputzt. Der Papierkorb bleibt leer.

Doch wenn der Ordner "Test" noch Unterordner enthält, muss deren Inhalt vorher entfernt werden, dann die Unterordner und zuletzt der Hauptordner.

Gruss, Hans

Bestehenden Ordner umbenennen und Ordner löschen.

bilabo
Beiträge gesamt: 29

16. Dez 2015, 11:04
Bewertung:

gelesen: 2494

Beitrag als Lesezeichen
Vielen Dank an Martin und Hans

Bestehenden Ordner umbenennen und Ordner löschen.

Hans Haesler
  
Beiträge gesamt: 5808

16. Dez 2015, 20:12
Bewertung:

gelesen: 2450

Beitrag als Lesezeichen
Hallo Bill,

bitte sehr.

Nachfolgend eine Lösung, mit welcher der definierte Ordner entfernt wird, auch wenn dessen Unterordner ebenfalls Unterordner enthalten.
Die erste Funktion entfernt alle Dateien aller Unterordner. Die zweite Funktion listet die Ordner auf und arbeitet sie in umgekehrter Reihenfolge ab.

WARNUNG: Der Ordner samt Inhalt wird SPURLOS verschwinden.

Code
var aFolder = Folder("~/Desktop/Test"); 
remAllFiles(aFolder);
fArr = new Array();
remAllFldrs(aFolder);
aFolder.remove();

function remAllFiles(aFolder) {
var f = Folder(aFolder).getFiles();
for (var n=0; n<f.length; n++) {
if (f[n] instanceof Folder) {
remAllFiles(f[n]);
}
else {
f[n].remove();
}
}
}

function remAllFldrs(aFolder) {
var f = Folder(aFolder).getFiles();
if (f.length > 0) {
fArr.push(f);
for (var n=0; n<f.length; n++) {
remAllFldrs(f[n]);
}
}
var nItems = fArr.length;
if (nItems > 0) {
for (var m=nItems-1; m>-1; m--) {
var mItems = fArr[m].length;
for (var k=mItems-1; k>-1; k--) {
try {
fArr[m][k].remove();
}
catch (e) {
}
}
}
}
}

KEINE HAFTUNG nach TOTALEM Datenverlust.

Gruss, Hans