CFileStatus für Ordner?
-
Hi
Gibt es so etwas wie CFileStatus auch für Ordner?
Ich habe zwar die Möglichkeit den Status mit CFile::GetStatus zu lesen, aber beim Schreiben mit SetStatus gibts eine Fehlermeldung.
Vielen Dank für die Aufmerksamkeit
-
Also gehe ich mal davon aus, dass es nicht geht.
-
Was für'ne Fehlermeldung kommt denn?
-
Es kommt die Fehlermeldung:
"Zugriff auf eine unbenannte Datei wurde verwehrt."
wenn ich CFileException nicht benutze.
Wenn ich SetStatus in einen TRY-CATCH-Block packe:
m_cause = 5
m_lOsError = 5Die Fehlermeldung kommt auch, wenn ich den Status ohne Veränderung speicher.
CFileStatus Status; CString Dateiname; CFile::GetStatus(Dateiname, Status); // Dateiname = Datei -> geht // Dateiname = Ordner -> geht CFile::SetStatus(Dateiname, Status); // Dateiname = Datei -> geht // Dateiname = Ordner -> FEHLERIch arbeite übrigens mit Windows XP, falls das wichtig ist.
-
Ganz einfach, weil ein normales CFile-Objekt, wie der Name schon sagt, nur Dateien (Files) öffnen kann.
Um Handles auf Verzeichnisse zu bekommen, muss man 'FILE_FLAG_BACKUP_SEMANTICS' benutzen. Probier doch einfach mal, statt der Funktion 'Open' die Funktion CreateFile aus der API zu benutzen und dann das Handle innerhalb CFile zu setzen.
-
Danke erstmal für den Tipp.
Ich habe mich nur gewundert, warum GetStatus auch den Status von Verzeichnissen zurückgibt, SetStatus aber nicht funktioniert.
Mit CFile bekomm ich es nicht hin, aber über 'FILE_FLAG_BACKUP_SEMANTICS' und 'CreateFile' bin ich auf 'SetFileAttributes' gestoßen.
Wieder File, aber hier kann man auch Verzeichnisse angeben.
Nehm ich halt das.