Unblock-Datei aus .net 4 c#
Gibt es eine Möglichkeit, um die Sperrung einer Datei aus dem internet heruntergeladen, die aus einem c# - Programm.
Surfen im internet habe ich erfahren, dass die Informationen geschrieben werden, die in einem alternativen Datenstrom ein (NTFS -) Datei, die enthält die aktuelle zone Informationen (Wert 3 ist aus dem internet und wird interpretiert als "blockiert").
Gibt es eine gelungen Möglichkeit, entweder deaktivieren oder ändern Sie die zone-Informationen (Entsperrung) einer Datei oder ist es ein managed-copy-Funktion kopiert die Dateien, ohne die zone Informationen?
Wenn nicht, wie kann ich mit PInvoke, aber ohne mit einem ausländischen assembly (ich bin mir nicht erlaubt, dies zu tun in einem aktuellen Projekt).
- Dank: ich dachte, dass ich genau dies geschrieben in meiner Frage. Ist mein Englisch so schlecht? Aber trotzdem danke... 🙂
- Nein, anscheinend ist meine lese-Fähigkeiten sind, obwohl. 🙂 Zu meiner Verteidigung, es ist nach Mitternacht hier. Fwiw, du wirst PInvoke, als die .Net-System.IO-Klassen nicht unterstützt alternate data streams.
- Siehe stackoverflow.com/questions/604960/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist gespeichert in der
:Zone.Identifier
stream (more < c:\theapp.exe:Zone.Identifier
), müssen Sie die native-IO-Routinen, um diese zu Bearbeiten, hier ist ein verwaltete wrapper.Basierend auf Ihrem input, ich habe den folgenden code:
Dank Stuart Dunkeld, Alex K(+1) und Sven zeigen mir die Richtung.
UPDATE
Ich habe den code hier für ein feedback, ob es funktioniert zuverlässig in der Produktionsumgebung. Wenn jemand will, es zu benutzen, überprüfen Sie heraus dort.
Den offiziellen Weg, um zu verwalten diese Kennung wird mit den PersistentZoneIdentifier COM-Objekt: http://msdn.microsoft.com/en-us/library/ms537029(v=vs. 85).aspx