DeleteFile() versagt ... [Fehlalarm]

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Getestet? Auf allen unterstützten Systemen in möglichst vielen
Systemkonfigurationen. Wobei nicht nur mit If bei wichtigen Dingen gecheckt
wird (wozu viele schon zu faul sind), sondern zusätzlich eine richtige
Fehlerbehandlung eingebaut wird? Schon mal OnError Lib oder TryCatch
verwendet?

PS: Haftung für fahrlässige Fehler lassen sich mit keiner Klausel ausschließen.

Jahrelange intensive Windows-Erfahrung und zusätzlich auch das
entsprechende KnowHow in Programmierung, was für Systemtools
erforderlich ist, sehe ich nicht.

>> Allerdings zeugt allein die Tatsache, dass wir hier alle programmierer sind davon, dass niemand zu dumm ist, den DeleteFile-Befehl richtig zu benutzen
Wenn ich mir manche Sourcen so ansehe, hab ich das Gefühl, man sollte
Eignungsprüfungen machen, bevor man sowas wie Programmiersprachen
verkauft :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

> Getestet? Auf allen unterstützten Systemen in möglichst vielen
Systemkonfigurationen.
Als ob du das für deine Programme auch machst. Nicht jeder hat nen Hyperrechner mit Win9x, 2k, ME, XP, NT ! Das sagst du nur, um meine Argumentation ins Wanken zu bringen. Außerdem kann ich dir verbindlich versichern, dass ein und dasselbe Programm bei mir und bei dir korrekt läuft, obwohl wir unterschiedliche Systemkonfigurationen haben. Unter Systemkonfigurationen verstehe ich Desktophintergrundeinstellungen und sonstiges bis hin zur Größe der Auslagerungsdatei und mehr.

> Schon mal OnError Lib oder TryCatch
verwendet?
Sicher doch! :-P

> was für Systemtools erforderlich ist
ich will doch kein Systemtool schreiben! Komm doch mal bitte wieder auf den Boden der tatsachen zurück :wink: Ich will lediglich ein tool schreiben, das temporäre Dateien von der Festplatte löscht. Der Benutzer kann selbst bestimmen, welche Dateien am Ende gelöscht werden sollen und außerdem kann er eigene Dateifilter hinzufügen.

> PS: Haftung für fahrlässige Fehler lassen sich mit keiner Klausel ausschließen.
Alles klar, danke für die Info.

> Wenn ich mir manche Sourcen so ansehe
...dann habe ich das Gefühl, dass du eventuell nicht ganz bei der Sache bist. Du schwankst zwischen "viele sind faul und dumm" und "hast du schon mal onError benutzt".

redest du jetzt davon, dass alle dumm sind, oder nur ich?
Ich weiß ja nicht, ob du's weißt, aber es geht hier ganz allein um mich!

Ich habe den Thread hier eröffnet,
ich will eine Antwort auf meine Frage haben,
ich habe einen Vorschlag geliefert.

du tust ja gerade so, als hätte man dich dazu verurteilt, Programme von PB-Neulingen Zwangs-zu-testen und dabei könne dein System kaputtgehen. Nun, jeder ist selbst für sein Programmier-Niveau verantwortlich, aber was spricht gegen diesen optionalen Parameter für DeleteFile()? Nichts!
Du musst ja die Programme nicht benutzen, wo dieser befehl drin vorkommt. Du musst auch niemanden Hilfe leisten im Forum, wenn hier einer mit dem Befehl nicht klarkommt.

Mich wunderts, dass du noch keinen Herzinfarkt gekriegt hast, wo es doch #PB_FileSystem_Force für DeleteDirectory() gibt. :shock: Oh mein Gott, jetzt habe ich wohl zu viel verraten, was? /:->
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
PBZecke
Beiträge: 399
Registriert: 02.09.2004 17:34

Beitrag von PBZecke »

Um hier auch noch einmal was beizusteuern, folgendes:

Der API-Aufruf DeleteFile_() löscht auch keine schreibgeschützen Dateien.
Und der PB-Befehl nutzt ja sicherlich den API-Befehl. Also kein BUG!

Es gibt ja Möglichkeiten solche Dateien trotzdem zu löschen, aber es sollte
keinen Super-Befehl geben, der es dem Programmierer zu leicht macht die
Platte schnell leer zu putzen. So wird gerade dem Programmieranfänger
nahegebracht darüber nachzudenken, was er da eigentlich vor hat. Hätte er
einen solchen Befehl, würde er die von AND51 gewünschte Option allzu
leichtfertig einsetzen.

Also wieder einmal: bitte keine "MakeGame()" Befehle wünschen!
Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... :lol:
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

@PBZecke
Danke, haste gut ausgedrückt

@AND51
Alle meine Aussagen wahren allgemeiner Natur und betrafen nicht unbedingt
Dich persönlich. Aber ein paar Postings zuvor hattest Du einen
InvalideMemory, der bei sauberer Fehlerbehandlung nicht möglich ist, also
wenn man alle Speicherzugriffe auf 0 prüft, bevor man sie ausführt. Sowas
natürlich auch bei Dateizugriffen und ein paar anderen Dingen.

Ziehe Dir also bitte nur den linken Schuh an, den rechten haste schon hinter Dir :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

@PBZecke: Danke für die Info.

@TS-Soft: Nun, den Invaliden Speicherzugriff habe ich doch erfolgreich aus der Welt geschafft. Das muss ja nicht unbedingt heißen, dass ich oder ein naderer sonst schlechte Programme herstellen, wenn wir das nicht merken würden.

Nach dieser Diskussion, denke ich, werde ich entweder schreibgeschützte Dateien ignorieren oder den Benutzer explizit fragen, ob die schreigeschützte Datei gelöscht werden soll.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Professionell wird es, wenn Du vorher auf Hidden und Systemflag prüfst, und
dort auch nachfragst :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
al90
Beiträge: 1103
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

ts-soft hat geschrieben:Professionell wird es, wenn Du vorher auf Hidden und Systemflag prüfst, und
dort auch nachfragst :wink:
Das abfragen dieser Flags ist für mich absolute pflicht und hat die höchste
priorität und sollte auch für jedem anderen Programmierer so sein.
Ausserdem kann man bei meinem Prog noch zusätzlich die Versteckten
und System Files ausblenden, was nochmals zur sicherheit beiträgt und
den User erst garnicht in die versuchung bringen kann, diese Files zu
löschen. Tja, alles TC-Like halt. :mrgreen:

BTW:

Dieser Beitrag ist jetzt nicht auf AND51 bezogen, sondern ein allgemeine aussage.
Also bitte nicht missverstehen. :wink:
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Schon OK.

Außerdem habe ich die Abfrage auf Hidden, System und ReadOnly schon längst eingebaut... :-P
Muss die Funktion nur noch hinzufügen, dass er positiv auf Flags geprüfte Dateien nicht anzeigt.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
al90
Beiträge: 1103
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

AND51 hat geschrieben:Muss die Funktion nur noch hinzufügen, dass er positiv auf Flags geprüfte Dateien nicht anzeigt.
Das habe ich zum glück schon hinter mir. :D
hab gerade den [Copy] Button belegt. Sieht echt geil aus. Als würde man
mit TC Kopieren. :mrgreen:

Ein paar Wochen werden aber wohl noch ins Land ziehen bis zum ersten release.
Gesperrt