Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Alle Dateien eines Server-Ordners auslesen (https://www.delphipraxis.net/79606-alle-dateien-eines-server-ordners-auslesen.html)

XeRo 25. Okt 2006 11:19


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.

chaosben 25. Okt 2006 13:03

Re: Alle Dateien eines Server-Ordners auslesen
 
Zitat:

Zitat von XeRo
alle Dateien eines Ordners auf meinem Server auslesen

Der Begriff "Server" ist ein weiter Begriff. Da gibt es FTP-Server, Web-Server, DB-Server, ... und so weiter und so fort.

Wenn du uns sagst, um was es sich genau handelt, können wir dir eine kompetente Antwort geben. (hoffentlich :) )

XeRo 25. Okt 2006 15:08

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: http://onlinelibrary.on.funpic.de/
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?

SirThornberry 25. Okt 2006 15:13

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)

defede 25. Okt 2006 15:20

Re: Alle Dateien eines Server-Ordners auslesen
 
Keine Chance.. die Serverwelt ist auch zu vielseitig.
Vielleicht eine PHP ansteuern und den Output erwarten.

XeRo 25. Okt 2006 15:24

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?

Luckie 25. Okt 2006 15:27

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.

XeRo 25. Okt 2006 15:37

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....

Luckie 25. Okt 2006 15:40

Re: Alle Dateien eines Server-Ordners auslesen
 
Ja.

Aber was hast du eigentlich vor? Bzw. was bezweckst du mit dem Programm?

XeRo 25. Okt 2006 15:43

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?

Andreas L. 25. Okt 2006 15:49

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.

XeRo 25. Okt 2006 15:55

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?

Matze 25. Okt 2006 15:58

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.

XeRo 25. Okt 2006 16:10

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?)

Matze 25. Okt 2006 16:11

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.

XeRo 25. Okt 2006 16:14

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:

SirThornberry 25. Okt 2006 16:15

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.

XeRo 25. Okt 2006 16:17

Re: Alle Dateien eines Server-Ordners auslesen
 
ich weiß nicht ob der gratis server das zulässt.

XeRo 25. Okt 2006 16:29

Re: Alle Dateien eines Server-Ordners auslesen
 
Das php-Script sieht so aus:
Code:
<?php
$verz = dir(".");
while ($datei = $verz->read())
{
 if (ereg(".txt$", $datei))
  {
   echo $datei,'
';
  }
}
?>
Funktioniert.

Gibts noch ne bessere Art alle *.txt Dateien eines Ordners aufzulisten?

Und vorallem eine, bei der auch alle Dateien der Unterordner aufgelistet werden?

Matze 25. Okt 2006 16:42

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.

XeRo 25. Okt 2006 16:48

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