Forum

Пожалуйста or Регистрация для создания сообщений и тем.

Как удалить файлы с атрибутом только для чтения?

PreviousPage 3 of 4Next

А если убрать try catch в методе Хачатура, у Вас появится исключение?

code

using System;
using System.IO;
using System.Linq;

namespace Delete {
    
    class Program {
        
        public static void Main(string[] args) {
    		
            EmptyFolder(args, "*");
            Console.Write("Готово");
            Console.ReadKey(true);
        }

        // Удалить всё содержимое от XpucT
        public static void EmptyFolder(string[] array, string mask) {
        	
            foreach (string x in array) {
        		
                if (Directory.Exists(x)) {
            		
                    Directory.GetFiles(x, mask, SearchOption.AllDirectories).AsParallel().ForAll(y => {

                         File.SetAttributes(y, File.GetAttributes(y) & ~FileAttributes.ReadOnly); 
                         File.Delete(y);
                    });
                    Directory.GetDirectories(x, mask, SearchOption.AllDirectories).AsParallel().ForAll(y => {

                       Directory.Delete(y, true);
                    });

                }
            }
        }
    }
}

Да, убрал все Скопированоtry catch.
Вот скриншот

У меня скорее всего Windows покалеченный. Тут даже на странице поддержки пишут.

Может быть, но Я поймал такое же исключение удаляя такие папки, может они защищаются, но в Вашем случае не понятно. Можно попробовать выдавать права на папку и все что внутри, чтобы наверняка

Да, я удалял такие папки. Вот что у меня сейчас. Сейчас попробую их воссоздать.

Это необязательно, если они сами не создадутся. Я сам такие папки сношу, не люблю лишний мусор

Проверил в VirtualBox, тоже самое.

Мутное это дело... У Меня удаляется. Такое исключение ловлю на защищенных папках. UAC на виртуалке включен, запуск приложения был без Админских прав.

видео

Вот это Я вафля... Папка не удаляется, если у нее есть иконка, извиняюсь, сразу не понял, читать разучился. Сначала подумал, что это из-за иконки в %SystemRoot%\System32\SHELL32.dll выдается исключение, но нет. Любая иконка делает исключение. Очень странно, что пишет: Отказано в доступе. Не имеет значение от Админа или нет. Через cmd да, улетает без прав Админа

Через CMD я так просто не удалю desktop.ini. Он может быть с атрибутами RHS. Приходится снимать атрибуты.
Список атрибутов есть в Everything.

PreviousPage 3 of 4Next