Seite 6 von 32

Verfasst: 28.01.2007 22:18
von al90
Kiffi hat geschrieben:* Probier mal mit einem normalen FTP-Client, ob Du dort Ordner anlegen
kannst und direkt danach reinwechseln kannst. Vielleicht hat Dein FTP-Server
eine 'Macke'?
Wenn ich es mit dem echten TotalCommander mache klappt alles wunderbar.
Auch das wechseln ins neue verzeichniss. Starte ich jetzt aber meine
anwendung und versuche in den von TC angelegten ordner zu wechseln,
bekomme ich wieder den selben Fehler.
Nur die alten Ordner funktionieren. Ich kann mir das phenomen einfach
nicht erklären. :(
* Überprüfe, ob der aus Deinem Programm neu erstellte Ordner auch das
entsprechende Attribute 'directory' hat und Du die entsprechenden Rechte
hast, ihn auch zu öffnen. Meines Erachtens ist es durchaus möglich, einen
Ordner zu erstellen ('write'), diesen aber nicht zu öffnen ('read').
Auch das klappt alles ganz normal. Hier ein auszug aus dem code.:

Code: Alles auswählen

attrib.l=FindFileData()\dwFileAttributes 
Gibt "attrib = 16" zurück. Stimmt also soweit. Ich kann mir nur vorstellen
das was mit meinem Windows nicht stimmt. Oder etwa ein PB bug ?
Ist aber eher unwarscheinlich denke ich.

Verfasst: 29.01.2007 02:15
von al90
So jetzt habe ich das problem doch noch im griff bekommen. :D

Und zwar ist es so das FtpFindFirstFile_() bei leeren Ordnern auch #Null zurückgibt.
Die alten Ornder waren nicht leer, deshalb fiel mir das zunächst nicht auf.
Dadurch wurde ordnungsgemäß ein Handle zurückgegeben, was bei leeren
Ordnern natürlich nicht der fall war. Ein weiterer Blick im MSDN brachte mir
jetzt die lösung. Man muss bei #Null mit GetLastError_() den status abfragen.

Hier mal schnell die lösung des problems:

Code: Alles auswählen

AddElement(FindFileData()) 
hFind.l = FtpFindFirstFile_(hConnect, Pfad$ + "*", @FindFileData(), 0, 0) 

If hFind=0 ; Connect-Error ???
  If GetLastError_()<>#ERROR_NO_MORE_FILES
    ClearList(FindFileData())
    ProcedureReturn 0
  EndIf
EndIf

If hFind<>0
  AddElement(FindFileData()) 
  While InternetFindNextFile_(hFind , @FindFileData()) 
    AddElement(FindFileData()) 
  Wend
  DeleteElement(FindFileData())
EndIf
Ich brauchte also nur die Constante #ERROR_NO_MORE_FILES im zusammenhang
mit GetLastError_() einsetzten und schon klappt alles bestens.
Jetzt kann ich endlich wieder normal weiter machen. :D

Nochmal Danke für die Tips. :allright:

Verfasst: 14.02.2007 22:54
von al90
Update 1.3 ab sofort verfügbar!
V1.3

- FTP Unterstützung wurde hinzugefügt.
- Dateinamen werden jetzt bei Löschvorgängen vorher aufgelistet.
- Eine Löschfunktion für ZIP-Archive wurde hinzugefügt.
- Eine Renamefunktion für ZIP-Archive wurde hinzugefügt.
- Unrar.dll wurde aktualisiert.
- Einige änderungen.
Pure FileMaster v1.3

Verfasst: 15.02.2007 09:25
von dige
Wow, da hat sich ja ne Menge getan, Super! Weiter so :allright:
Macht richtig Spaß damit zu arbeiten

Verfasst: 15.02.2007 16:57
von Dostej
Respekt. Wirklich gut geworden.
Darf ich noch ein paar Verbesserungsvorschläge einbringen (weiss nicht ob ich das schon mal gemacht haben ..)

Unten bei der Anzahl der markeirten Dateien noch deren Grösse udn dir gesamtgrösse aller datein in diesem Dir

Selektieren mit Wildcards

Umbenennen aller markeirten Files mit Wildcards (so ähnlich wie beim Totalcommander)

... wäre noch klasse.

Verfasst: 15.02.2007 20:48
von al90
Danke. Freut mich natürlich zu hören das Ihr zufrieden seid. :allright:
Natürlich werde ich versuchen noch mehr dinge aus dem echtem TC
zu übernehmen.

@Dostej

ich habe deine vorschläge auf der ToDo-Liste gestzt. :wink:

Verfasst: 15.02.2007 21:13
von al90
Nachtrag:

Die version 1.3 steht jetzt auch als ZIP-File bereit.

PureFileMaster13.zip

Verfasst: 16.02.2007 08:50
von Dostej
ich habe deine vorschläge auf der ToDo-Liste gestzt.
Danke. Freut mich... :-)

Verfasst: 16.02.2007 09:24
von HeX0R
Guten Morgen,

habe mal dein Tool ausprobiert und zwei Dinge bemerkt:

1.) Wenn ich ein Netzwerklaufwerk auswähle, dass auf einen nicht gebooteten Rechner verweist hätte ich gerne eine Meldung anstatt einfach ein leeres Laufwerk anzuzeigen.

2.) Mein letztes Netzwerklaufwerk wird nicht angezeigt ( Y: ) .

Ansonsten:
:allright:

[Edit]
3.) Während ich diese Zeilen geschrieben habe und dein Commander im Hintergrund gelaufen ist, reagiert er gar nicht mehr :shock:

Verfasst: 16.02.2007 21:05
von al90
HeX0R hat geschrieben:1.) Wenn ich ein Netzwerklaufwerk auswähle, dass auf einen nicht gebooteten Rechner verweist hätte ich gerne eine Meldung anstatt einfach ein leeres Laufwerk anzuzeigen.
Netzlaufwerke werden nicht direkt unterstützt. Vielmehr werden alle LWs
über API ermittelt.
2.) Mein letztes Netzwerklaufwerk wird nicht angezeigt ( Y: ) .
s.o.
Ansonsten:
:allright:
Danke. :wink:
3.) Während ich diese Zeilen geschrieben habe und dein Commander im Hintergrund gelaufen ist, reagiert er gar nicht mehr :shock:
Das kann viele gründe haben. Soll nicht heissen das es nicht tatsächlich
an PFM liegen könnte. Die wahrscheinlichkeit ist aber sehr gering. Während
Du ihn nicht benutzt, läuft er quasi "leer" in seiner Event-Schleife.
Daher also kaum denkbar das es durch sich selbst abgestürtzt ist.
Tip: Überprüfe am besten einfach mal deine CPU-Auslastung. Vllt
verbraucht eine andere Anwendung zu viele resourcen?! Ich habe PFM
selbst hier schon seit längere zeit im Hintergrund und hatte noch nie
ähnliche probleme. (Auch von anderen wurde mir noch nie was ähnliches gemeldet)

PFM wurde übrigens von mir auf 2 Sytemen ausgibig und erfolgreich getestet:
WinXP P4 2.66Ghz 512MB RAM

und

Win98 Athlon-1000 384MB RAM
Wie es sich auf anderen Rechnern verhält kann ich natürlich nicht sagen.