Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Prism FileAttributes (https://www.delphipraxis.net/80253-fileattributes.html)

sanguinarus 5. Nov 2006 22:19


FileAttributes
 
ich will das attribut bei einer datei änder und
zwar system und versteckt soll sie sein
habe
Delphi-Quellcode:
begin
datname := Openfiledialog1.filename;
&file.setattributes(datname, system.io.fileattributes.hidden);
&file.setattributes(datname, system.io.fileattributes.system);
end
nur er macht immer nur das vas zu schluss
steht also system aber die datei ist nicht versteckt
und wie ich die setcreatetime funktion
also das erstellungsdatum ändern!

mkinzler 5. Nov 2006 22:45

Re: FileAttributes
 
Du mußt auch die Kombination beider setzen:

Delphi-Quellcode:
&file.setattributes(datname, system.io.fileattributes.hidden and system.io.fileattributes.system);

Muetze1 5. Nov 2006 23:31

Re: FileAttributes
 
Hmm, sowas ist abstruss. Ich habe zwar noch nicht mit .NET programmiert, aber trotzdem ist es mehr als komisch. Daher wollte ich hier mal nachfragen, ob die Attribute wirklich mit AND kombiniert werden unter .NET (es somit keine reinen Bitmasken mehr sind)?

Dax 6. Nov 2006 00:07

Re: FileAttributes
 
Zitat:

Zitat von Muetze1
Hmm, sowas ist abstruss. Ich habe zwar noch nicht mit .NET programmiert, aber trotzdem ist es mehr als komisch. Daher wollte ich hier mal nachfragen, ob die Attribute wirklich mit AND kombiniert werden unter .NET (es somit keine reinen Bitmasken mehr sind)?

Werden sie nicht, es sind noch immer Bitmasken - daher or, nicht and.

mkinzler 6. Nov 2006 07:45

Re: FileAttributes
 
Klar or, man sollte aber einer bestimmten Uhrzeit ins Bett gehen :oops:

himitsu 6. Nov 2006 11:35

Re: FileAttributes
 
Und wenn man die anderen Attribute nicht mit ändern (zurücksetzen) will, dann sollte man diese auch mit einbeziehen ^^
Delphi-Quellcode:
A := &file.getattributes(datname);
&file.setattributes(datname, A or system.io.fileattributes.system
  or system.io.fileattributes.hidden);
(ich hoffe daß sieht in .Net etwa so aus)

sanguinarus 7. Nov 2006 10:01

Re: FileAttributes
 
also mit

Zitat:

Delphi-Quellcode:
A := &file.getattributes(datname);
&file.setattributes(datname, A or system.io.fileattributes.system
  or system.io.fileattributes.hidden);

klappt leider auch nicht kann man das nicht irgenwie über eine add
funktion machen?

sanguinarus 7. Nov 2006 10:04

Re: FileAttributes
 
alos ich lade die datei mit openfiledialog
dann zeigt es mir an wie die eigenschaften des programmes sind
nur mal klappt es das die datei versteckt und eine systemdatei
ist und manchmal nicht

himitsu 7. Nov 2006 13:02

Re: FileAttributes
 
Dann solltest du dir mal den FehlerCode besorgen ... also GetLastError (ist hoffentlich richtig) nach dem Ausführen von SetFileAttributes aufrufen.

sanguinarus 7. Nov 2006 15:50

Re: FileAttributes
 
ich habe es!!
lösche erst alle Attribute und schreibe sie dann neu!

Delphi-Quellcode:
   datname := Openfiledialog1.FileName;
    fi := fileinfo.Create(datname);
    &file.SetAttributes (datname, System.IO.FileAttributes.Normal);
    if checkbox1.Checked then
      begin
        fi.Attributes := fi.Attributes or System.IO.FileAttributes.ReadOnly;
      end;
    if checkbox3.Checked then
      begin
        fi.Attributes := fi.Attributes or System.IO.FileAttributes.System;
      end;
    if checkbox2.Checked then
       begin
        fi.Attributes := fi.Attributes or System.IO.FileAttributes.Hidden;
       end;
    if checkbox4.Checked then
       begin
        fi.Attributes := fi.Attributes or System.IO.FileAttributes.Archive;
       end;
das nur weiss ich leider immer noch nicht wie ich die
setcreationtime funktion benutze

sanguinarus 8. Nov 2006 22:35

Re: FileAttributes
 
ich habe es

Delphi-Quellcode:
textbox1.text:= System.io.file.getcreationtime(datname);
&file.setcreationtime(datname, datatime.parse(textbox1.text);
wichtig system zeit wieder zürück setzten
Delphi-Quellcode:
System.datatime.now.now_today;


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz