Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как удалить системный файл в C#, как удалить системный файл в C# 
:(
    Опции темы
vitovt
Дата 31.10.2006, 03:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.10.2006

Репутация: нет
Всего: нет



Народ, помогите, please. Как удалить системный (или скрытый) файл в C#. 
Это не катит
Код

Directory.Delete("Some directory", true);


PM MAIL   Вверх
archimed7592
Дата 31.10.2006, 04:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 7
Всего: 93



vitovt, smile файл и директория разные вещи
для readonly и системных файлов можно сбросить атрибуты в Normal вот так: File.SetAttributes(@"some file", FileAttributes.Normal);
для файлов и директорий, доступ к которым запрещён на уровне ACL нужно соответственно изменять эти ACL статическими методами GetAccessControl и SetAccessControl классов File и Directory



--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
nerezus
Дата 31.10.2006, 06:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 1
Всего: 43



Цитата

vitovt,  файл и директория разные вещи
 А разве теоретически директория — не частный случай файла? ;)

Это сообщение отредактировал(а) nerezus - 31.10.2006, 06:36


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
archimed7592
  Дата 31.10.2006, 06:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 7
Всего: 93



Цитата(nerezus @  31.10.2006,  07:32 Найти цитируемый пост)
Не был бы таким категаричным: теоретически директория — частный случай файла ;)
и практически тоже...но оч. часто это зависит от ФС. а любой файл - это частный случай намагниченности диска smile ...вот только с точки зрения System.IO директория и файл разные вещи. smile
зы. я не категоричный, я призвал его точнее выражать свои мысли smile


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
vitovt
Дата 2.11.2006, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.10.2006

Репутация: нет
Всего: нет



Я дико извиняюсь за некоторую неточность. Дело вот в чем:
Я пытаюсь удалить директорию, в которой содержится скрытый файл.
PM MAIL   Вверх
archimed7592
Дата 2.11.2006, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 7
Всего: 93



vitovt, а ты уверен, что у тебя достаточно полномочий удалять папку\подпапки\файлы в них? скрытые файлы не должны быть помехой для удаления папки.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
reloni
Дата 3.11.2006, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 10.5.2006
Где: Москва

Репутация: 3
Всего: 4



Цитата(vitovt @  2.11.2006,  23:49 Найти цитируемый пост)
Я пытаюсь удалить директорию, в которой содержится скрытый файл. 

Насколько я помню, из директории нужно сначала удалить все файлы, а потом уже удалять ее саму.
PM MAIL ICQ   Вверх
archimed7592
Дата 3.11.2006, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 7
Всего: 93



Цитата(reloni @  3.11.2006,  01:01 Найти цитируемый пост)
 нужно сначала удалить все файлы,
в некоторых случаях в .net эту фазу можно опустить.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Injener
Дата 3.11.2006, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 6.10.2006
Где: СПб

Репутация: нет
Всего: 1



В некоторых, это в каких??
--------------------
Любое дело можно сделать тремя способами:1) правильно2) неправильно3) и так как это делают в армии
PM MAIL   Вверх
archimed7592
Дата 3.11.2006, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 7
Всего: 93



Injener, Directory.Delete method...в тех случаях, когда не будет исключения smile
Цитата
true to remove directories, subdirectories, and files in path; otherwise, false.



--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
vitovt
Дата 26.11.2006, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.10.2006

Репутация: нет
Всего: нет



народ, спасибо, разобрался:

Код

public void DeleteDirectory(string path)
        {
            DirectoryInfo dir=new DirectoryInfo(path);
            DirectoryInfo[] subDirectories = dir.GetDirectories();
            for (int i = 0; i < subDirectories.Length; ++i)
            {
                DeleteDirectory(subDirectories[i].FullName);
            }
            FileInfo[] files = dir.GetFiles();
            for (int i = 0; i < files.Length; ++i)
            {
                files[i].Attributes = FileAttributes.Normal;      // Важно!
                files[i].Delete();
            }
            dir.Delete();
        }


Рекурсивная ф-ция, удаляет  в следующем порядке:
  •  Вложенные директории
  •  Вложенные файлы
  •  Саму директорию

Цитата

в некоторых случаях в .net эту фазу можно опустить.

Цитата

true to remove directories, subdirectories, and files in path; otherwise, false.


Но!!!  Если  в папке содержится readonly файл, то    

Directory.Delete("Some directory", true); не пройдет

Это сообщение отредактировал(а) vitovt - 29.11.2006, 19:48
PM MAIL   Вверх
archimed7592
Дата 27.11.2006, 01:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 7
Всего: 93



Цитата(vitovt @  26.11.2006,  14:51 Найти цитируемый пост)
Directory.Delete("Some directory", true); не пройдет
а чего не пройдет? исключение? просто не удалит? что означает не пройдет? поясни, плз.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
vitovt
Дата 29.11.2006, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.10.2006

Репутация: нет
Всего: нет



С системными, вроде, все ОК, так что sorry   smile.    А вот c READONLY
UnauthorizedAccessException 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0542 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.