AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Ordner über sockets versenden
Thema durchsuchen
Ansicht
Themen-Optionen

Ordner über sockets versenden

Ein Thema von Master_Jochen · begonnen am 3. Sep 2009 · letzter Beitrag vom 4. Sep 2009
Antwort Antwort
Master_Jochen

Registriert seit: 22. Aug 2008
12 Beiträge
 
#1

Ordner über sockets versenden

  Alt 3. Sep 2009, 14:13
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
Ich bin ein noob sorry.
  Mit Zitat antworten Zitat
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Ordner über sockets versenden

  Alt 3. Sep 2009, 14:32
Vielleicht versuchst du es doch mit Indy. hier in der DP gibt es ne super Anleitung zur Installation von Indy9.
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.
  Mit Zitat antworten Zitat
Master_Jochen

Registriert seit: 22. Aug 2008
12 Beiträge
 
#3

Re: Ordner über sockets versenden

  Alt 3. Sep 2009, 21:43
Mhh ja die anleitung sieht echt klasse aus bin leider nie darauf gestoßen
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 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.
Ich bin ein noob sorry.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Ordner über sockets versenden

  Alt 4. Sep 2009, 06:52
Zitat von Master_Jochen:
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.....
Eventuell ist der Code aus der BTVisualFTP Komponente als Hilfe brauchbar - damit werden auch Ordnerstrukturen übertragen.

http://cc.embarcadero.com/Item/24525

http://sourceforge.net/projects/btvisualftp/

Viele Grüße,
Michael
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Master_Jochen

Registriert seit: 22. Aug 2008
12 Beiträge
 
#5

Re: Ordner über sockets versenden

  Alt 4. Sep 2009, 11:13
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
Ich bin ein noob sorry.
  Mit Zitat antworten Zitat
Master_Jochen

Registriert seit: 22. Aug 2008
12 Beiträge
 
#6

Re: Ordner über sockets versenden

  Alt 4. Sep 2009, 12:08
So ein problem weniger vieleicht hilft diese lösung ja auch jemand anderem weiter

Delphi-Quellcode:
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;
Die zeile
Delphi-Quellcode:
    i:=length(path);
    if(path[i]<>'\')then path:=path + '\';
habe ich eingebaut für niedrige delphi versionen unter 4

Ja die procedure zeigt alle verzeichnisse im übergebenen pfad auch leere und alle dateien in listbox 1 an.
Ich bin ein noob sorry.
  Mit Zitat antworten Zitat
Master_Jochen

Registriert seit: 22. Aug 2008
12 Beiträge
 
#7

Re: Ordner über sockets versenden

  Alt 4. Sep 2009, 21:00
Oh Man habe den code versucht anzupassen aber bekomme immer wieder nen access violation error

Delphi-Quellcode:
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;
wenn ich ihn hiermit aufrufe

ListDirectory(FolderPath,AllFolders); 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...
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
Ich bin ein noob sorry.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz