![]() |
Ordner über sockets versenden
Hallo Leute,
Ich bin noch immer ein blutiger Anfänger und entschuldife mich schonmal im voraus für doofe Fragen Zu Meinem Problem.... Ich möchte gerne einen ganzen ordner über sockets versenden, und nein ich möchte kein iny verwenden da ich bei der installation von indy schon immer nen anfall bekomme. Ich habe bis jetzt nur ne grundstrucktur aber diese ist so chaotisch gecoded das ich mich schäme den code zu posten :-) Meine ansetze zum ordnerversenden waren folgende ersten ich gebe den ordner an und lasse ihn durchsuchen und merke mir bei jedem treffer den pfad sende diese angaben an den server der dann diesen pfad im clientordner des servers ablegt .... ok dachte das könnte gehen aber alle funktionen zum durchsuchen von ordnern die ich gefunden habe hören auf weiter zu suchen sobald in einem unterordner keine datei liegt, aber wenn 2 ebenen darunter noch ordner existieren muss ich die ja auch kennen da ich die ordnerstruktur inklusive dateien 1 zu 1 nachbilden will. Ja 2ter ansatz ich lasse den client den folder zipen und den server entzippen ..... Naja vieleicht habt ihr auch ne idee die einfacher wäre.... Schonmal danke fürs lesen und hoffe ihr könnt mir helfen mfg Jochen |
Re: Ordner über sockets versenden
Vielleicht versuchst du es doch mit Indy. hier in der DP gibt es ne super
![]() Ab Delphi2009 ist Indy10 sogar schon direkt Installiert. Und es gibt bestimmt eine Funktion die alle Dateien in einem Ordner auflistet. Ich würde diese Daten in eine Stringlist packen und danach den Server Datei für Datei senden lassen. |
Re: Ordner über sockets versenden
Mhh ja die anleitung sieht echt klasse aus bin leider nie darauf gestoßen :wall:
aber ich bin mit meinem project doch schon etwas weiter mitlerweile sprich chat funktioniert und ich kann command senden und der server führt sie aus Für das ordner problem muss ich vieleicht nen neuen treat erstellen .... wie gesagt ich kenne funktionen die du meinst aber ich muss ja auch die leeren ordner auf dem server erstellen da sonst gewisse anwendungen nicht laufen wenn ihnen ein ordner fehlt oder sich im unter ordner von dem ordner in dem sich keine datei befand, noch eine datei befindet..... ok klingt jetzt etwas chaotisch .... so wie mein code :oops: naja will ja im prinzip nur nen ganzen ordner versenden suche gute ansetze dafür.... Und ja stringlist wäre auch meine idee gewesen Danke für deine anregungen XXcD. |
Re: Ordner über sockets versenden
Zitat:
![]() ![]() Viele Grüße, Michael |
Re: Ordner über sockets versenden
Hey dakne mjustin,
Ich werde mir das gleich mal ansehen wenn ich ne funktion extrahiert habe um alle ordner anzuzeigen werde ich dir auch hier posten.... PS: Denn was ich hasse sind threads die enden mit "Habe ne andere lösung gefunden"... und diese dann aber nicht gepostet wird :firejump: |
Re: Ordner über sockets versenden
So ein problem weniger vieleicht hilft diese lösung ja auch jemand anderem weiter
Delphi-Quellcode:
Die zeile
procedure TForm1.ListDirectory(path:string);
var SR: TSearchRec; i:integer; begin i:=length(path); if(path[i]<>'\')then path:=path + '\'; if FindFirst(path + '*.*', faAnyFile, SR) = 0 then try repeat if ((faDirectory) = faDirectory) and (SR.Name <> '.') and (SR.Name <> '..') then begin; Listbox1.Items.Add(path + SR.Name); ListDirectory(path + SR.Name + '\'); end; until FindNext(SR) <> 0; finally FindClose(SR); end; end;
Delphi-Quellcode:
habe ich eingebaut für niedrige delphi versionen unter 4
i:=length(path);
if(path[i]<>'\')then path:=path + '\'; Ja die procedure zeigt alle verzeichnisse im übergebenen pfad auch leere und alle dateien in listbox 1 an. |
Re: Ordner über sockets versenden
Oh Man habe den code versucht anzupassen aber bekomme immer wieder nen access violation error
Delphi-Quellcode:
wenn ich ihn hiermit aufrufe
procedure TForm1.ListDirectory(path:string;stringlist: Tstrings);
var SR: TSearchRec; i:integer; begin i:=length(path); if(path[i]<>'\')then path:=path + '\'; if FindFirst(path + '*.*', faAnyFile, SR) = 0 then try repeat if ((faDirectory) = faDirectory) and (SR.Name <> '.') and (SR.Name <> '..') then begin; stringlist.Add(path + SR.Name); ListDirectory(path + SR.Name + '\',stringlist); end; until FindNext(SR) <> 0; finally FindClose(SR); end; end;
Delphi-Quellcode:
kann das daran liegen das man nicht prozeduren übergreifen variabeln verararbeiten kann und mein code dies versuch? des weiteren wenn ich dieser pocedure de untersten folder gebe bekomme ich kein error...
ListDirectory(FolderPath,AllFolders);
weiß einer rat von euch profis? Am liebste hätte ich das ganze mit einer funktion gelöst aber da die sich ja immer wieder selber aufruft weiß ich nicht wie das mit dem result gehen soll... Fragen über fragen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 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