![]() |
NTFS - Dateiberechtigungen übernehmen
Hallo,
derzeit verwende ich, da es die für meine Zwecke schnellste Methode ist, SHFileOpStruc, um Dateien zu kopieren. Leider gehen dabei die Werte der Sicherheitsattribute verloren. Der Code ist kein Geheimnis und Standard:
Delphi-Quellcode:
function copyFileEx(const aSourceFile, aDestFile: string): Boolean;
var fos: TSHFileOpStruct; begin ZeroMemory(@fos, SizeOf(fos)); with fos do begin wFunc := FO_COPY; fFlags := FOF_NO_UI; pFrom := PChar(aSourceFile + #0); pTo := PChar(aDestFile) end; Result := (0 = SHFileOperation(fos)); end; Wie genau muss ich eine Datei kopieren, damit auch die Sicherheitsattribute und dessen eingestellten Werte übertragen werden? |
AW: NTFS - Dateiberechtigungen übernehmen
Die sollten normalerweise mitkommen.
Bei ![]()
Delphi-Quellcode:
FOF_NOCOPYSECURITYATTRIBS
|
AW: NTFS - Dateiberechtigungen übernehmen
Zitat:
Ich bin mir nicht ganz sicher, aber ich glaube mich zu erinnern, dass Programme wie Total Commander die Berechtigungen von der Quelle auslesen und auf das Ziel übertragen. MfG Dalai |
AW: NTFS - Dateiberechtigungen übernehmen
Zitat:
|
AW: NTFS - Dateiberechtigungen übernehmen
Falls das Flag nichts das gewünschte Ergebnis liefert:
Eventuell manuell über ![]() Neue Datei erstellen, das Original als Template verwenden und dann den Inhalt noch rüberschaufeln. Was dabei nun genau alles kopiert wird, weiß ich aber nicht. Ansonsten gibt's in den Jedi die Abteilung der Security-API, also Rechte auslesen und nach dem Kopieren entsprechend setzen. |
AW: NTFS - Dateiberechtigungen übernehmen
Zitat:
Das Kopieren einer 10MB Datei dauert bei mir mit TSHFileOPStruct etwa 10 Millisekunden. Mit CreateFile und eigenem Buffer usw. 350 Millisekunden. Ein angepasster Buffer senkt die Kopierzeit auf akzeptable Werte. Aber ich bleibe lieber bei TSHFileOPStruct. Dann werde ich die Sicherheitseinstellungen für jede Datei wohl zwischenspeichern müssen und auf die Zieldatei übertragen. |
AW: NTFS - Dateiberechtigungen übernehmen
Zitat:
MfG Dalai |
AW: NTFS - Dateiberechtigungen übernehmen
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 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-2025 by Thomas Breitkreuz