[Gelöst] NTFS-Zugriffsrechte und temporäre Dateien
- 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
Re: NTFS-Zugriffsrechte und temporäre Dateien
Es sollte noch darauf hingewiesen werden, das der *buffer in Procedure FileGetDACL(sFilename.s) bei Erfolg auch freigegeben wird, jedenfalls wenn PB noch länger läuft und die Procedure mehrmals aufgerufen wird. Kann mir nicht vorstellen, das die API das von alleine macht.
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.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Re: NTFS-Zugriffsrechte und temporäre Dateien
nö, wozu. Temp-Daten zum lesen öffnen, finale datei zum schreiben - und gleichzeitig lesen und schreiben. zum schluss die Temp löschenNino hat geschrieben:Das habe ich auch überlegt. Dann muss allerdings der komplette Dateiinhalt im Speicher gehalten werden und ich dachte, dass das bei großen Dateien zu Problemen führen kann. Oder kann ich mich darauf verlassen, dass das Betriebssystem sich darum kümmert (und bei Bedarf Inhalte in die Swap-Datei auslagert)?
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Re: NTFS-Zugriffsrechte und temporäre Dateien
Nicht jede Datei wird geändert. Das ist vorher nicht bekannt. Erst während das Programm eine Ursprungsdatei liest, stellt es fest ob darin etwas ist was geändert werden soll.GPI hat geschrieben:Temp-Daten zum lesen öffnen, finale datei zum schreiben - und gleichzeitig lesen und schreiben. zum schluss die Temp löschen
Deshalb mache ich es so: Temp-Daten zum Schreiben öffnen, Ursprungsdatei zum Lesen. Wenn nichts geändert wurde, die Temp-Datei löschen. Ansonsten und wenn kein Fehler aufgetreten ist, die Temp-Datei umbenennen. So wird die Ursprungsdatei nur verändert wenn es nötig ist, und wenn zuvor alles gut gegangen ist.
Re: NTFS-Zugriffsrechte und temporäre Dateien
Sind die HTML-Dateien wirklich so groß, dass diese nicht in den Arbeitsspeicher geladen werden können?
Das kann ich mir nicht vorstellen!
HTML-Dateien, die ein paar MByte groß sind ... da braucht das Rendering im Browser ja schon einige Zeit.
"ein paar MByte" können doch leicht in den Arbeitsspeicher geladen werden.
Und sind die HTML-Dateien wirklich so groß, dass das nicht geht, dann sind diese meiner Ansicht nach auch zu groß für einen Browser.
Das kann ich mir nicht vorstellen!
HTML-Dateien, die ein paar MByte groß sind ... da braucht das Rendering im Browser ja schon einige Zeit.
"ein paar MByte" können doch leicht in den Arbeitsspeicher geladen werden.
Und sind die HTML-Dateien wirklich so groß, dass das nicht geht, dann sind diese meiner Ansicht nach auch zu groß für einen Browser.
Windows 10
PB Last Final / (Sometimes testing Beta versions)
PB Last Final / (Sometimes testing Beta versions)
Re: NTFS-Zugriffsrechte und temporäre Dateien
Nein, die HTML-Dateien sind nicht so groß.helpy hat geschrieben:Sind die HTML-Dateien wirklich so groß, dass diese nicht in den Arbeitsspeicher geladen werden können?
Das kann ich mir nicht vorstellen!
Das Problem ist halt zufällig jetzt bei diesem Programm aufgetreten. Demnächst werde ich vor der gleichen Situation stehen bei einem Programm, welches Textdateien bearbeitet, von denen jede eine Größe von mehreren Gigabyte haben kann.
Re: NTFS-Zugriffsrechte und temporäre Dateien
wie NicTheQuick und GPI bereits gesagt haben kannst du entweder:..Dann muss allerdings der komplette Dateiinhalt im Speicher gehalten werden ..
- Original-Datei nach und nach einlesen, und dabei samt Aenderungen in die Temp-Datei schreiben.
- dann statt die Original-Datei zu ersetzen den Inhalt der Temp-Datei nach und nach zurueckschreiben in die Original-Datei ohne diese neu zu erstellen.
Oder du kopierst die Original-Datei vor einfach, liest von der Kopie und schreibst samt Aaenderungen den Inhalt neu in die Original-Datei.
Re: NTFS-Zugriffsrechte und temporäre Dateien
Dafür gibt es doch unter Windows einen Ordner auf den alle Benutzer zugreifen können.
Damit sollte es keine Probleme mit der Berechtigung geben...
Code: Alles auswählen
Debug GetUserDirectory(#PB_Directory_AllUserData) + "MyProgram\"
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: NTFS-Zugriffsrechte und temporäre Dateien
Ja. Wenn man allerdings die temporäre Datei dort erstellt, so kann es sein dass sie sich auf einem anderen Laufwerk befindet als die Ursprungsdatei. In dem Fall muss sie anschließend kopiert werden, was länger dauert als verschieben auf dem selben Laufwerk.mk-soft hat geschrieben:Dafür gibt es doch unter Windows einen Ordner auf den alle Benutzer zugreifen können.Damit sollte es keine Probleme mit der Berechtigung geben...Code: Alles auswählen
Debug GetUserDirectory(#PB_Directory_AllUserData) + "MyProgram\"
Meine Lösung, die temporäre Datei im selben Verzeichnis wie die Ursprungsdatei zu erstellen, ist daher besser -- außer wenn auf diesem Laufwerk kein Platz mehr für die temporäre Datei ist. Und in dem Fall dass der Platz knapp ist, würde GetUserDirectory(#PB_Directory_AllUserData) auch nur dann einen Vorteil bieten, wenn es nicht auch auf dem selben Laufwerk ist.
Re: NTFS-Zugriffsrechte und temporäre Dateien
Wenn du gigabytegroße Dateien hast: Falls Temp auf einen anderen Laufwerk ist, muss PB das eben auch kopieren. Das wird dauern.
Klüger wäre es einfach in Verzeichnis der Original-Datei eine Temp-Datei zu erstellen und je nach bedarf original oder TEMP beibehalten. Dann gibt es solche Probleme schlicht nicht.
Klüger wäre es einfach in Verzeichnis der Original-Datei eine Temp-Datei zu erstellen und je nach bedarf original oder TEMP beibehalten. Dann gibt es solche Probleme schlicht nicht.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Re: NTFS-Zugriffsrechte und temporäre Dateien
Ich stimme Dir voll und ganz zu. Und genau das mache ich wie gesagt jetzt ja auch, nachdem ich diese Erfahrung mit GetTemporaryDirectory() gemacht habe.GPI hat geschrieben:Wenn du gigabytegroße Dateien hast: Falls Temp auf einen anderen Laufwerk ist, muss PB das eben auch kopieren. Das wird dauern.
Klüger wäre es einfach in Verzeichnis der Original-Datei eine Temp-Datei zu erstellen und je nach bedarf original oder TEMP beibehalten. Dann gibt es solche Probleme schlicht nicht.
Also nochmal für alle eiligen Leser: Das Problem ist gelöst.