AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Schreibgeschützte Datei

Ein Thema von Jonson · begonnen am 29. Jan 2003 · letzter Beitrag vom 13. Aug 2003
Antwort Antwort
Seite 1 von 2  1 2      
Jonson

Registriert seit: 10. Jun 2002
43 Beiträge
 
#1

Schreibgeschützte Datei

  Alt 29. Jan 2003, 11:52
hi,
wie kann man feststellen, ob eine Datei schreibgeschützt ist?
wie kann man Schreibschutz aufheben?
bitte um Beispiel!

Jonson
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2
  Alt 29. Jan 2003, 11:58
Delphi-Quellcode:
FileSetAttr( 'C:\Eigene Dateien\test.txt', faHidden + faArchive );
// Beispiel - Attribute von 'C:\Eigene Dateien\' auslesen anhand FileGetAttr
var
attrs : Integer;
.....
attrs := FileGetAttr( 'C:\Eigene Dateien\' );
If attrs and faReadOnly > 0 then
showMessage( 'Schreibgeschützt' );
If attrs and faHidden > 0 then
showMessage( 'Verstecktt' );
If attrs and faSysFile > 0 then
showMessage( 'Systemdatei' );
If attrs and faVolumeID > 0 then
showMessage( 'Laufwerks-ID' );
If attrs and faDirectory > 0 then
showMessage( 'Verzeichnis' );
If attrs and faArchive > 0 then
showMessage( 'Archivdatei' );
If attrs and faAnyFile > 0 then
showMessage( 'Irgendeine Datei' );
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Jonson

Registriert seit: 10. Jun 2002
43 Beiträge
 
#3
  Alt 29. Jan 2003, 12:17
es funktioniert leider nicht

bitte um Beispiel

If attrs and faReadOnly > 0 then
showMessage( 'Schreibgeschützt' );

bringt Fehler

Jonson
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4
  Alt 29. Jan 2003, 12:24
Zitat von Jonson:
bringt Fehler
Blos nicht zu viel verraten. Es könnte ja möglich sein, dass man von der Fehlermeldung auf eine mögliche Ursache bzw. in folge dessen auf eine Lösung kommen könnte.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Jonson

Registriert seit: 10. Jun 2002
43 Beiträge
 
#5
  Alt 29. Jan 2003, 12:30
jetzt weiß ich zumindest wie man hier topmoderator wird mit über 1500 antowrten. danke für deine bemühungen

Jonson
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#6
  Alt 29. Jan 2003, 12:39
Hallo Johnson,

Luckie wollte Dich dazu anregen, näher zu beschreiben, auf welche Fehler Du mit diesem Code gestoßen bist.
Unter Delphi 6 ist es zum Beispiel so, dass sich dieser Code nicht kompilieren lässt, da der Compiler mit der Fehlermeldung abbricht, dass Operand und Operator nicht zusammenpassen.

Wenn Du im Code auf Fehler triffst und dazu eine Frage stellen möchtest, dann ist es immer hilfreich, weitere Informationen wie z.B. die genaue Fehlermeldung mit anzugeben.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7
  Alt 29. Jan 2003, 12:40
Was soll das bitte sehr? Wie soll man dir helfen, wenn du nicht sagst, was für ein Fehler kommt bzw. was nicht geht?

Den Code habe ich mal irgendwo gefunden und mir mal aufgehoben, ihn aber selber noch nie gebraucht.

Ok war eventuell etwas hart, aber das kommt hier immer öfters vor, dass Leute sagen: "da kommt ein Fehler." Und dann nicht sagen was für einer. Aber wie ich oben schon geschrieben haben, wie soll man helfen, wenn der Fehler nicht näher beschrieben wird. Ungefähr genauso, als wenn du zum Arzt gehst und sagst: "Es tut weh." Was soll der Arzt da machen?

[EDIT]
Bei mir kompiliert der Code und bringt auch richtige Ergenisse:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  attrs : Integer;
begin
  attrs := FileGetAttr( 'C:\io.sys');
  If attrs and faReadOnly > 0 then
  showMessage( 'Schreibgeschützt' );
  If attrs and faHidden > 0 then
  showMessage( 'Verstecktt' );
  If attrs and faSysFile > 0 then
  showMessage( 'Systemdatei' );
  If attrs and faVolumeID > 0 then
  showMessage( 'Laufwerks-ID' );
  If attrs and faDirectory > 0 then
  showMessage( 'Verzeichnis' );
  If attrs and faArchive > 0 then
  showMessage( 'Archivdatei' );
  If attrs and faAnyFile > 0 then
  showMessage( 'Irgendeine Datei' );
end;
[/EDIT]

[EDIT2]
Funktioniert auch mit Verzeichnissen.
[/EDIT2]
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#8
  Alt 29. Jan 2003, 12:48
Hallo Johnson,

ich kann den Compiler-Fehler abwenden, wenn ich explizit mit angebe, aus welcher Unit der Compiler die Konstanden fa_XXXXXX heranziehen soll:

If (attrs and sysUtils.faReadOnly) > 0 Then ShowMessage( 'Schreibgeschützt' ); Hoffe, Dir damit geholfen zu haben...


Edit:
Also - in einem Standard-Projekt wird man vermutlich nicht in diesem Fehler laufen. Ich habe die obigen Code-Zeilen gerade in ein aktuelles Projekt von mir hineinkopiert und hatte dort vorher die Unit 'DB.pas' eingebunden. Diese wird ebenfalls mit D6 ausgeliefert und beinhaltet eine eigene Konstante 'fa_Readonly'. Letztere ist jedoch nicht für die Benutzung im Zusammenhang mit Datei-Attributen gedacht und es entsteht oben beschriebener Fehler.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Jonson

Registriert seit: 10. Jun 2002
43 Beiträge
 
#9
  Alt 29. Jan 2003, 14:16
Hi Daniel!

das war's!

danke

Jonson
  Mit Zitat antworten Zitat
Jonson

Registriert seit: 10. Jun 2002
43 Beiträge
 
#10
  Alt 30. Jan 2003, 14:33
Luckie, es tut mir leid (du hast recht)

mfg jonson
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:11 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