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/)
-   -   Sicherheitsattribut Datei zurücksetzen (https://www.delphipraxis.net/196671-sicherheitsattribut-datei-zuruecksetzen.html)

Bernhard Geyer 8. Jun 2018 07:24

Sicherheitsattribut Datei zurücksetzen
 
Wie kann ich die Dateieigentschaft "Die Datei stammt von einem anderen Computer. Der Zugriff wurde aus Sicherheitsgründen eventuell blockiert" programmiertechnisch zurücksetzen?
Möchte es vermeiden über einen eigene CopyFile-Routine das über einen Workaround zu realisieren.

p80286 8. Jun 2018 07:30

AW: Sicherheitsattribut Datei zurücksetzen
 
Schleppt die Datei einen AlternateDatastream mit sich herum?
Bei den aktuellen Ws soll es den zwar nicht mehr geben, aber nachschauen schad' ja nicht.

Gruß
K-H

Bernhard Geyer 8. Jun 2018 08:27

AW: Sicherheitsattribut Datei zurücksetzen
 
Ja, da gibt es einen ADS-Stream

p80286 8. Jun 2018 11:32

AW: Sicherheitsattribut Datei zurücksetzen
 
Weg damit und gut ist.
(frag mich bitte nicht wie man es "richtig" macht, die drei mal die ich das gebraucht habe, hatte ich mir mit einer Kopie über einen FAT-Stick beholfen, weil mir der offizelle Weg zu aufwendig war.)

Gruß
K-H

HolgerX 8. Jun 2018 11:58

AW: Sicherheitsattribut Datei zurücksetzen
 
Hmm..

da gibt es so eine schöne Unit:

http://www.michael-puff.de/Programmi...its/MpuADS.pas

Mit
Delphi-Quellcode:
procedure DeleteStream(const Filename: string; StreamName: string);
var
  adsr             : TMpuADS;
begin
  if length(StreamName) > 1 then begin
    if StreamName[1] = ':' then delete(StreamName,1,1);
    adsr := TMpuADS.Create(Filename);
    try
      try
        adsr.DeleteDataStream(StreamName);
      except
        on E: Exception do
          Writeln(E.Message);
      end;
    finally
      adsr.Free;
    end;
  end;
end;
und einem einfachem

Delphi-Quellcode:
DeleteStream(AFileName,':Zone.Identifier');
Würde das Problem mitd dem ADS von Internet-Files beseitigt werden.

Bernhard Geyer 8. Jun 2018 12:48

AW: Sicherheitsattribut Datei zurücksetzen
 
Danke für die Tipps:

Ein Einfaches

Delphi-Quellcode:
DeleteFile(PChar(FFilename + ':' + StreamName))
löst das Problem.
Hätte hier erwartet das es irgendeine API-Funktion gibt, welche keiner kennt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 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