AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Problem mit Speicherung- da original Datei schreibschutz hat
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Speicherung- da original Datei schreibschutz hat

Ein Thema von Black07 · begonnen am 15. Jun 2007 · letzter Beitrag vom 15. Jun 2007
Antwort Antwort
Black07

Registriert seit: 10. Jun 2007
24 Beiträge
 
#1

Problem mit Speicherung- da original Datei schreibschutz hat

  Alt 15. Jun 2007, 11:05
Hi

ich habe ein Problem eine schreibgeschützte Datei zu überschreiben.

Wenn ich den Codeablauf in Delphi mit Haltepunkten teste funktioniert es nur wenn ich
das Programm dann "loslasse" bekomme ich eine Fehler-Meldung, das die Datei nicht gespeichert werden kann.

Was auch klar wird, da der Schreibschutz noch immer gesetzt ist,
es scheint mir als ob WinXP die Anweisungen nicht so schnell durchführen kannn,
wie das Delphiprogramm die Anweisungen gibt.


Delphi-Quellcode:
  
if form6.neuesverzeichnisselect6=false then //neues Verzeichnis eigeben?-Nein
  begin
    if FileExists(squestverzeichnis4+'\'+squestdateiname4) then //überprüfen ob im alten Verzeichnis die Datei existiert
      begin
      fileex:=true;
        if (FileGetAttr(squestverzeichnis4+'\'+squestdateiname4) and faReadOnly) >= 0 then
          begin
             FileSetAttr(squestverzeichnis4+'\'+squestdateiname4, FileGetAttr(squestverzeichnis4+'\'+squestdateiname4) xor faReadOnly);
          end;
           deletefile(squestverzeichnis4+'\'+squestdateiname4);
      end;
  memouebergabeneu.Lines.SaveToFile(squestverzeichnis4+'\'+squestdateiname4);
end;
Lösung ?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem mit Speicherung- da original Datei schreibschutz

  Alt 15. Jun 2007, 11:22
Hallo, 2 Dinge fallen mir auf:
Zitat von Black07:
if (FileGetAttr(squestverzeichnis4+'\'+squestdateiname4) and faReadOnly) >= 0
Das ergibt IMHO wahr, denn da kann nur 0 (ergibt wahr) oder faReadOnly (ergibt auch wahr) bei herauskommen.
Zitat von Black07:
FileSetAttr(squestverzeichnis4+'\'+squestdateiname4, FileGetAttr(squestverzeichnis4+'\'+squestdateiname4) xor faReadOnly);
Damit schaltest Du als Folgefehler das Attribut auf jeden Fall um. Was spricht dagegen, das so zu machen?
FileSetAttr(squestverzeichnis4+'\'+squestdateiname4,FileGetAttr(squestverzeichnis4+'\'+squestdateiname4) and not faReadOnly);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Problem mit Speicherung- da original Datei schreibschutz

  Alt 15. Jun 2007, 11:25
Weiter Möglichkeit: Virenscanner! Oh da wurde etwas geändert - Dann Check ich mal die ganze Datei asynchron.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Black07

Registriert seit: 10. Jun 2007
24 Beiträge
 
#4

Re: Problem mit Speicherung- da original Datei schreibschutz

  Alt 15. Jun 2007, 11:32
Zitat von DeddyH:
Hallo, 2 Dinge fallen mir auf:
Zitat von Black07:
if (FileGetAttr(squestverzeichnis4+'\'+squestdateiname4) and faReadOnly) >= 0
Das ergibt IMHO wahr, denn da kann nur 0 (ergibt wahr) oder faReadOnly (ergibt auch wahr) bei herauskommen.
Zitat von Black07:
FileSetAttr(squestverzeichnis4+'\'+squestdateiname4, FileGetAttr(squestverzeichnis4+'\'+squestdateiname4) xor faReadOnly);
Damit schaltest Du als Folgefehler das Attribut auf jeden Fall um. Was spricht dagegen, das so zu machen?
FileSetAttr(squestverzeichnis4+'\'+squestdateiname4,FileGetAttr(squestverzeichnis4+'\'+squestdateiname4) and not faReadOnly);
Zitat:
if (FileGetAttr(squestverzeichnis4+'\'+squestdateiname4) and faReadOnly) > 0
geändert!!

wohl blind gewesen in den anderen Abfragen hab ich auch immer nur > stehen.


FileSetAttr(squestverzeichnis4+'\'+squestdateiname4,FileGetAttr(squestverzeichnis4+'\'+squestdateiname4) and not faReadOnly); das heißt doch das überprüft wird ob Schreibschutz auf der Datei im Ordner gesetzt ist und wenn ja dann
schreibschutz aufheben - korrekt?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Problem mit Speicherung- da original Datei schreibschutz

  Alt 15. Jun 2007, 11:57
Nicht ganz korrekt. Das heißt, das Schreibschutzattribut auf jeden Fall entfernen (wenn es vorher nicht gesetzt war, passiert auch nichts).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 04:12 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