[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt GetFiles Liste verarbeiten

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

GetFiles Liste verarbeiten

Bungi
Beiträge gesamt: 13

24. Feb 2022, 10:14
Beitrag # 1 von 9
Bewertung:
(8185 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,
Leider komme ich an einer Stelle nicht weiter.
Folgende Situation liegt vor.
Mittels einem Dialog lese ich u.a. eine PDF- Kennung aus. 0000.pdf)
Daneben lasse ich einen vorgegebenen Ordner auf dem Fileserver samt allen Unterordnern auslesen.
Soweit klappt das.
Ziel ist es nur die eine abgefragte PDF zu platzieren. (Ich weiß ja nicht in welchem Unterordner sich die PDF befindet, daher die Liste der Dateien)
Kurz gesagt. Wie kann ich aus der Liste diesen einen Pfad auslesen.
Listenergebnis:
xyzPfad/0000.pdf,xyzPfad/0001.pdf,xyzPfad/0002.pdf….
Gesuchter Pfad: xyzPfad/0000.pdf
Oder habe ich hier eine falsche Herangehensweise und kann den Pfad bereit mit getFiles() abfangen?

Danke für eine Unterstützung
X

GetFiles Liste verarbeiten

Martin Fischer
  
Beiträge gesamt: 12783

24. Feb 2022, 11:19
Beitrag # 2 von 9
Beitrag ID: #582788
Bewertung:
(8150 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Bungi,

wie liegt Dir die Liste vor?
Als Array oder als String?

Das Array könntest Du in einer Schleife solange durchgehen, bis der richtige Name gefunden ist.

Den String könntest Du mittels eines GREP durchforsten.

Bei ähnlichen Aufgabenstellungen lese ich die ermittelten Daten gerne in ein assoziatives Array bzw. ein Objektliteral ein, wo der Dateiname als key dient und das File-Objekt den dazugehörigen Wert darstellt. So kann man später gezielt mit dem key den gewünschten Pfad abrufen:

Code
var myFiles = {}; 
// Dateien aus Pfadstruktur mit Unterordnern per Schleife einlesen
// und dabei das Array/Objektliteral ausbauen
// ...
// später ...
// gesucht Datei mit key '0000.pdf'
var eine_Datei = myFiles['0000.pdf']; // -> File(xyzPfad/0000.pdf)



als Antwort auf: [#582785]
(Dieser Beitrag wurde von Martin Fischer am 24. Feb 2022, 11:19 geändert)

GetFiles Liste verarbeiten

Bungi
Beiträge gesamt: 13

24. Feb 2022, 11:58
Beitrag # 3 von 9
Beitrag ID: #582789
Bewertung:
(8123 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Martin,
Das ist doch schon mal einen Versuch wert.

Neuer Gedanke:
Beim zusammentragen/durchsuchen der Ordner/Subordner
Habe ich aktuell eine Abfrage:
if (datei instanceof File && datei.name.match(/\.pdf$/i))
Kann ich an dieser Stelle nicht die Variable der gesuchten PDF hinterlegen?
Er sucht ja schon .pdf ??
Ich bin leider nicht soooo tief im Scripten drin.

Danke und Alaaf


als Antwort auf: [#582788]

GetFiles Liste verarbeiten

Martin Fischer
  
Beiträge gesamt: 12783

24. Feb 2022, 12:52
Beitrag # 4 von 9
Beitrag ID: #582790
Bewertung:
(8083 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es kommt auf den Kontext an.

Muss nur eine ganz spezielle Datei gefunden werden oder ist im Gesamtprozess mit mehreren Dateien etwas anzurichten?

Kommt das häufiger vor?
Dann wäre es u.U. sinnvoll, eine Art Index oder Inhaltsverzeichnis zu erstellen und nur bei Bedarf alle Verzeichnisse und Unterverzeichnisse abzugrasen.
Freilich muß gewährleistet sein, dass dieser Behelfsdatei gut gepflegt und bei Bedarf auf dem aktuellen Stand ist.

Antwort auf: Kann ich an dieser Stelle nicht die Variable der gesuchten PDF hinterlegen?

Was heißt "Variable"?
Den Dateinamen, der in der "Variable" steckt?

Dann bastelst Du Dir am besten mittels einer Stringkombination einen RegExp-Ausdruck wie in selfhtml: JavaScript/Objekte/RegExp dargestellt:
Code
var rxSelf1 = new RegExp('[Ss]elfhtml'); 
var rxSelf2 = new RegExp('selfhtml', 'i');
var text = "Willkommen im SelfHTML Wiki";
text.match(rxSelf1); // liefert null - kein Treffer
text.match(rxSelf2); // liefert ["SelfHTML"]


Also vorher den String str, der in der Klammer von RegExp(str) steckt, vorher zusammenbauen aus dem Namen der gesuchten Datei und dem Drumherum.


als Antwort auf: [#582789]
(Dieser Beitrag wurde von Martin Fischer am 24. Feb 2022, 12:54 geändert)

GetFiles Liste verarbeiten

WernerPerplies
Beiträge gesamt: 2762

24. Feb 2022, 13:00
Beitrag # 5 von 9
Beitrag ID: #582791
Bewertung:
(8073 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,

schau Dir mal dieses Skript an, vielleicht gibt es Dir einige Anregungen zum Thema Folder, Files und getFiles:
Kopieren von ganzen Ordnern


als Antwort auf: [#582789]

GetFiles Liste verarbeiten

Martin Fischer
  
Beiträge gesamt: 12783

25. Feb 2022, 09:18
Beitrag # 6 von 9
Beitrag ID: #582808
Bewertung:
(7944 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Bungi,

könntest Du den Kontext bzw. die Aufgabenstellung etwas genauer beschreiben?

Geht es einmalig um die gezielte Suche nach einer bestimmten Datei in einem umfangreicheren Datenbestand in einer verzweigten Verzeichnisstruktur?

Oder geht es eher um eine Stapelverarbeitung von mehreren Dateien mit bestimmten Kriterien in einer verzweigten Verzeichnisstruktur?


als Antwort auf: [#582789]

GetFiles Liste verarbeiten

Uwe Laubender
Beiträge gesamt: 5316

25. Feb 2022, 09:20
Beitrag # 7 von 9
Beitrag ID: #582809
Bewertung:
(7942 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Bungi,

noch eine Anmerkung:

Mit getFiles() kannst Du als Argument auch eine Filterfunktion laufen lassen, die Dir bereits alle brauchbaren Dateien, die platziert werden sollen, in ein Array schreibt.

Code
var allFilesFiltered = myFolder.getFiles   
(
function(file)
{
if(file instanceof file) &&
if(file.name.match(/\.pdf$/i)

// und so weiter…
// Keine Ahnung, was genau die Kriterien sind.

return true
}
)



Strategie wäre:
Du wählst nicht aus einer Liste von Dateinamen aus ( oder filterst diese erneut ), sondern erzeugst gleich ein Array mit Dateien.


als Antwort auf: [#582785]

GetFiles Liste verarbeiten

WernerPerplies
Beiträge gesamt: 2762

25. Feb 2022, 10:16
Beitrag # 8 von 9
Beitrag ID: #582812
Bewertung:
(7910 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,

ich traue mich fast nicht zu fragen, warum sieht sich niemand mein Skript an, es durchsucht eine kompletten Verzeichnisbaum nach bestimmtem Dateien und kopiert sie.

Eine andere Nutzung der gefundenen Dateien sollte wirklich keine Hexerei sein.


als Antwort auf: [#582809]

GetFiles Liste verarbeiten

Bungi
Beiträge gesamt: 13

25. Feb 2022, 11:50
Beitrag # 9 von 9
Beitrag ID: #582815
Bewertung:
(7856 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank für die zahlreichen Tipps.
Werde bestimmt zeitnah eine Lösung erarbeiten können.
Aktuell muss ich mich erstmal um dringendere Projekte kümmern.

Es geht lediglich um eine gezielte Suche nach einer bestimmten Datei in einer verzweigten Verzeichnisstruktur.
Ich werde den Ansatz verfolgen indem ich bereits vorab die gesuchte Datei herausfiltere.

Einen schönen Tag


als Antwort auf: [#582808]
X