PureFileMaster ein TotalCMD-Clone Released! (Version 3)

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag 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.
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag 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:
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag 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
Benutzeravatar
dige
Beiträge: 1236
Registriert: 08.09.2004 08:53

Beitrag von dige »

Wow, da hat sich ja ne Menge getan, Super! Weiter so :allright:
Macht richtig Spaß damit zu arbeiten
"Papa, ich laufe schneller - dann ist es nicht so weit."
Benutzeravatar
Dostej
Beiträge: 529
Registriert: 01.10.2004 10:02
Kontaktdaten:

Beitrag 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.
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag 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:
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

Nachtrag:

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

PureFileMaster13.zip
Benutzeravatar
Dostej
Beiträge: 529
Registriert: 01.10.2004 10:02
Kontaktdaten:

Beitrag von Dostej »

ich habe deine vorschläge auf der ToDo-Liste gestzt.
Danke. Freut mich... :-)
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag 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:
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

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