Datei Attribut zuweisen



  • Hallo,
    meine Frage lautet, wie kann ich einer Datei Attribute zuweisen.
    z.B.: Wenn man unter Windows eine Datei per rechtsklick der Maus anwählt, und im Kontextmenü den Eintrag Eigenschaften wählt, kann man unter dem Reiter Allgemein, die AttributOption Versteck wählen.
    Ich möchte nun wissen, wie man einer bereits bestehenden Datei ein solches Attribut zuweisen könnte, per C++ versteht sich.

    Hoffe das das so möglich ist, und auch das mir vllt jemand dabei helfen könnte.

    MfG Die Eule



  • WinAPI-spezifisch. SetFileAttribute() schätzungsweise.

    MfG SideWinder



  • PS.: Es wäre auch nicht weiter schlimm, wenn die Attributzuweisung innerhalb/während der Datei-Erstellung geschehen müsste.



  • SideWinder schrieb:

    WinAPI-spezifisch. SetFileAttribute() schätzungsweise.

    MfG SideWinder

    Danke, wed mich da mal schlau machen.

    MfG Die Eule



  • Andere evtl. einfachere Möglichkeit:

    #include "process.h"
    
    strcpy (verstecken, "attrib +h");
    strcat (verstecken, " C:test.txt");
    system (verstecken);
    


  • Nein, das ist Mist, da system() Mist ist. Siehe auch hier in anderem Zusammenhang: http://www.c-plusplus.net/forum/viewtopic-var-t-is-178828.html

    MfG SideWinder



  • SideWinder schrieb:

    Nein, das ist Mist, da system() Mist ist. Siehe auch hier in anderem Zusammenhang: http://www.c-plusplus.net/forum/viewtopic-var-t-is-178828.html

    MfG SideWinder

    Das ist eher Mist, weil 'strcpy' und 'strcat' Mist sind ...



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


  • Mod

    Konrad Rudolph schrieb:

    SideWinder schrieb:

    Nein, das ist Mist, da system() Mist ist. Siehe auch hier in anderem Zusammenhang: http://www.c-plusplus.net/forum/viewtopic-var-t-is-178828.html

    MfG SideWinder

    Das ist eher Mist, weil 'strcpy' und 'strcat' Mist sind ...

    Nein!
    1. Es ist Quatsch für das setzen eines Attributes einen neuen Prozess zu bemühen wenn es dafür eine API-Funktion gibt. Einfach Overkill.
    2. Das Geflacker und die Performance sind einfach lahm.
    3. Man bekommt keinen Fehlerresponse.
    4. Es funktioniert nur wenn ATTRIB von der SHell verstanden wird. Wird eine andere CMD Shell verwendet funktioniert es nicht.

    Summa Summarum: system zu verwenden ist Quatsch. Es gibt keinen Grund für irgendwas system zu verwenden außer es gibt wirklich keine API Funktion zu diesem Programm.
    Und grundsätzlich kann man sagen: Alles was man von der CMD Shell an Windows und Dateioperationen ausführen kann, kann man auch mit der API!



  • Martin Richter schrieb:

    Konrad Rudolph schrieb:

    SideWinder schrieb:

    Nein, das ist Mist, da system() Mist ist.

    Das ist eher Mist, weil 'strcpy' und 'strcat' Mist sind ...

    Nein!

    Ups, ich wollte natürlich nicht die Verwendung von 'system' verteidigen. Klar ist das aus technischer Sicht "Quatsch". Von daher: Keine Diskussion.

    Ich finde nur, 'strcpy' und 'strcat' springen in einem C++-Forum als rotes Warnsignal ins Auge. Das blinkt so hell, dass es schon auf der Netzhaut wehtut. 😉


Log in to reply