![]() |
Alle Dateien eines Server-Ordners auslesen
Also ich will alle Dateien eines Ordners auf meinem Server auslesen. Das soll aber nicht über ftp funktionieren, oder wenn, dann ohne passwort. Die Dateiliste kann jeder User mit dem IE ansehen(Es ist also nicht irgendwie mit htaccess oder so eingeschränkt), daher muss es doch auch möglich sein, alle diese Dateien mit einem Programm in eine StringList zu laden.
|
Re: Alle Dateien eines Server-Ordners auslesen
Zitat:
Wenn du uns sagst, um was es sich genau handelt, können wir dir eine kompetente Antwort geben. (hoffentlich :) ) |
Re: Alle Dateien eines Server-Ordners auslesen
Naja sowohl FTP server als auch Web server...wenn man das so sagen kann...
Als Beispiel nenn ich mal: ![]() Ich will, dass alle Dateien und auch die, die in irgendwelchen unterordnern sind, in eine stringlist aufgelistet werden. Mit Pfad wenn möglich ;-) Wie kann ich das am besten erreichen? |
Re: Alle Dateien eines Server-Ordners auslesen
bei einem http-server wirst du keine Chancen haben eine Auflistung aller Dateien zu bekommen außer es liegt ein Script auf dem Server welches dieses verursacht (zum Beispiel .htaccess)
|
Re: Alle Dateien eines Server-Ordners auslesen
Keine Chance.. die Serverwelt ist auch zu vielseitig.
Vielleicht eine PHP ansteuern und den Output erwarten. |
Re: Alle Dateien eines Server-Ordners auslesen
Wieso kann ich das mit dem IE(mal abgesehen von den unterordnern), aber nicht mit delphi.
Und wenn ich über ftp auf den server zugreife? |
Re: Alle Dateien eines Server-Ordners auslesen
Der Browser bekommt keine dateiliste, sondern eine vom Server generierte HTML Seite mit dem Verzeichnisinhalt. Per FTP wäre das natürlich kein Problem. Jeder FTP Komponente sollte das können, zum Beispiel die Indy-Komponentensammlung.
|
Re: Alle Dateien eines Server-Ordners auslesen
Wenn ich das Programm über FTP auf den Server zugreifen lasse, haben dann andere user, die das programm benutzen eine möglichkeit, das ftp passwort irgendwie heraus zu bekommen....
|
Re: Alle Dateien eines Server-Ordners auslesen
Ja.
Aber was hast du eigentlich vor? Bzw. was bezweckst du mit dem Programm? |
Re: Alle Dateien eines Server-Ordners auslesen
Im Prinzip möchte ich mit dem Programm einen Ordner meines Servers nach Dateien durchsuchen. Sollte eine der dort befindlichen Dateien nicht auf dem PC existieren, dann soll das Programm diese Datei herunterladen.
Im Prinzip eine einfache Update funktion, wobei die dateien die immer wieder upgedatet werden sehr kleine *.txt-Dateien sind. Kennt jemand vielleicht einen besseren weg das umzusetzen? |
Re: Alle Dateien eines Server-Ordners auslesen
Die Dateiauflistung was du da siehst ist eine vom Server (z. B. Apache) generierte Seite. Die kannst du wie jede andere Seite mit den Indy-Komponenten hurunterladen und dann parsen. Gibt bestimmt auch schon fertige HTML-parser denen du nur noch die Attribute übergeben musst und fertig. Ansonsten ist so ein simpler Parser auch nicht so schwer zu schreiben... Stichworte: pos, copy, posex, delete, stringreplace und Tstringlist.
|
Re: Alle Dateien eines Server-Ordners auslesen
und wie heißt diese generierte seite? index.htm oder html? oder sonst wie?
Hm...Dann muss ich aber auf die Unterordner verzichten :-( Oder ich arbeite mich da kompliziert durch bis ich alle ordner hab :-( Kennt jemand ein Script, dass mit alle URLs aus einem HTML-Text parst? |
Re: Alle Dateien eines Server-Ordners auslesen
Ich würde das mit einem kleinen PHP-Skript lösen, das die die Dateinamen, das letzte Änderungsdatum und die Dateigröße zurückgibt.
|
Re: Alle Dateien eines Server-Ordners auslesen
einfach eine php datei schreiben, die ganz normal mit echo die dateie-liste schreibt, und das ergebniss dann mit idhht1.get(...) auf den pc speichern? oder muss ich ein script schreiben, dass direkt informationen an das programm übergibt?(geht das überhaupt?)
|
Re: Alle Dateien eines Server-Ordners auslesen
Es reicht, wenn du eine Ausgabe mittels echo (print_r) erzeugst und diese dann in deinem Programm parst. Das ist sicher einfacher, als die Angaben an dein Programm zu schicken.
|
Re: Alle Dateien eines Server-Ordners auslesen
OK. Wow. Einerseits vielen Dank für die, wieder mal, extrem schnellen Antworten. Andererseits: mann bin ich blöd. Hätte mir auch einfallen können. :duck:
|
Re: Alle Dateien eines Server-Ordners auslesen
Du könntest auch einfach einen Anonyous-Account auf deinem FTP-Server einrichten. Da stört es auch logischer weise nicht wenn jemand die Zugriffsdaten heraus findet.
|
Re: Alle Dateien eines Server-Ordners auslesen
ich weiß nicht ob der gratis server das zulässt.
|
Re: Alle Dateien eines Server-Ordners auslesen
Das php-Script sieht so aus:
Code:
Funktioniert.
<?php
$verz = dir("."); while ($datei = $verz->read()) { if (ereg(".txt$", $datei)) { echo $datei,' '; } } ?> Gibts noch ne bessere Art alle *.txt Dateien eines Ordners aufzulisten? Und vorallem eine, bei der auch alle Dateien der Unterordner aufgelistet werden? |
Re: Alle Dateien eines Server-Ordners auslesen
Ob's eine bessere gibt, weiß ich nicht. Unterordner müsstest du afaik manuell durchsuchen. Schreibe also eine Funktion, der du den Ordner als Parameter übergibst und diese entsprechend aufrufst.
|
Re: Alle Dateien eines Server-Ordners auslesen
So. folgendes Script macht alles was ich brauche:
Code:
<?php
# gibt alle dateien in $dir als array zurück (ganzer dateipfad). wird ein verzeichnis gefunden wir auch dieses durchsucht. function readDirRec($dir = "./") { if(!$dh = opendir($dir)) return false; if(substr($dir, -1) != "/") $dir .= "/"; $files = array(); while($file = readdir($dh)) { $path = $dir . $file; if($file == "." || $file == "..") continue; if(is_dir($path)) { if(!$sub = readDirRec($path)) continue; $files = array_merge($files, $sub); } else { $files[] = $path; } } closedir($dh); sort($files); return $files; } # verzeichnis durchsuchen $dir = readDirRec("."); # $dir nach strings durchsuchen welche auf txt ende (case-insensitive) $gifs = preg_grep("/\.(txt)$/i", $dir); # zeige alle gefundenen dateien foreach($gifs as $path) { echo "$path "; } ?> |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz