Это делает наоборот - блокирует файл. Это не связано с вопросом, но все еще полезно, спасибо.

т вопрос Я искал простое решение, чтобы разблокировать файлы. Благодаря всем комментариям и ответам, я нашел простое решение от PInvokingЭто работает, но поскольку я никогда не использовал файловые операции через PInvoke (Win32), я не знаю, есть ли какие-то подводные камни или есть другой метод вызоваDeleteFile.

 удалить альтернативный поток файла.DeleteFileЧего я также не знаю, так это того, нужно ли мне обернуть вызов в try / catch или достаточно просто посмотреть на логический результат. В моих тестах не было никаких исключений, но я не знаю, что произойдет в реальном мире.

Этот код выглядит надежным?

public class FileUnblocker {

    [DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool DeleteFile(string name );

    public bool Unblock(string fileName) {
        return DeleteFile(fileName+ ":Zone.Identifier");
    }
}

Обновить

Я опубликовал неполный метод (метод разблокирования не объединял литерал «Zone.Identifier» с именем файла). Я исправил это сейчас, извините.
Кто бы ни прошел и слепо понизил ответы: любезно объясните, почему ответ был неправильным.

Ответы на вопрос(3)

Ваш ответ на вопрос