2013-06-09 2 views
1

Вопрос в названии ... C#Какой файл перечисления FileSystemRights переименовал бы файл?

Попытка предотвратить переименовывать папки, я попытался с помощью FileSystemWatcher и имеющий пустоту на событие переименования, которое будет переименовать папку обратно, но это вызвало forkbomb.

Я решил просто отказаться от этого и использовать права доступа, но какой из них будет переименовывать файл/папку?

http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.filesystemrights.aspx

ответ

0

В NTFS для того, чтобы переименовать файл/папку, вы должны удалить privs. Это включено в более широкий набор разрешений, известных как «изменить». Очевидно, это боль, но ты здесь.

Таким образом, если вы удаляете привилегии для удаления группы или пользователя в папке, они не смогут ее переименовать.

+0

Это не так, я установил привилегии для FileSystemRights.Delete | FileSystemRights.DeleteSubdirectoriesAndFiles, и я все еще могу переименовать без изменения привилегий. – user2444664

+0

@ user2444664 прав, это не сработает, я пробовал. Этот вопрос все еще нуждается в ответе. –

0
FileSystemRights.FullControl 

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

Значит, вам (и мне) не повезло, если вы хотите отказаться от переименования и разрешить что угодно. Например, разрешение чтения после отказа от полного контроля не позволит читать. Это, по-видимому, серьезный недостаток дизайна. Мне нужно найти другой способ сделать это.

Смежные вопросы