Как я могу программно удалить атрибут readonly из каталога на C#?Удалить атрибут readonly из каталога
ответ
var di = new DirectoryInfo("SomeFolder");
di.Attributes &= ~FileAttributes.ReadOnly;
эй дарин, что означает этот синтаксис? «& = ~» приветствует! – andy
& = -> Добавить так, чтобы не касаться всех других атрибутов и ~ -> дополнять, так что делайте противоположное readonly – MarkKGreenway
Вот хорошая ссылка на примеры изменения файла атрибутов с использованием C#
http://www.csharp-examples.net/file-attributes/
основана на их примере можно удалить только чтение атрибутов, как это (я не проверял это):
File.SetAttributes(filePath, File.GetAttributes(filePath) & ~FileAttributes.ReadOnly);
Приходите на все это о файле. wana abt Directory .... пожалуйста. –
@Red Swan: Я просто проверил это, чтобы добавить скрытые атрибуты, и он отлично работает с каталогами. – Petrucio
Это работает для файлов и каталогов, потому что каталог похож на специальный файл с установленным атрибутом каталога (FileAttributes.Directory). – seveves
Если вы пытаетесь удалить атрибут файла в файловой системе, создайте экземпляр класса System.IO.FileInfo и установите для свойства IsReadOnly значение false.
FileInfo file = new FileInfo("c:\\microsoft.text");
file.IsReadOnly = false;
нет нет о файле. Я хочу, чтобы каталог/папка –
Понял, наконец. ;)
class Program
{
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo("c:\\test");
FileAttributes f = di.Attributes;
Console.WriteLine("Directory c:\\test has attributes:");
DecipherAttributes(f);
}
public static void DecipherAttributes(FileAttributes f)
{
// To set use File.SetAttributes
File.SetAttributes(@"C:\test", FileAttributes.ReadOnly);
if ((f & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
Console.WriteLine("ReadOnly");
// To remove readonly use "-="
f -= FileAttributes.ReadOnly;
if ((f & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
Console.WriteLine("ReadOnly");
else
Console.WriteLine("Not ReadOnly");
}
}
Использование - оператор присваивания = опасно по двум причинам: 1) Это работает только если ReadOnly атрибут установлен, таким образом, испытание необходимо заранее. 2) Выполняет операцию вычитания, что не является лучшим выбором при работе с бинарными флагами. Операция вычитания работает, если условие 1 (выше) истинно, но дополнительные операции вычитания будут ALTER OTHER BITS в поле FileAttributes!
Использовать «& = ~ FileAttributes.ReadOnly;» сбросить флаг ReadOnly.
Используйте «| = FileAttributes.ReadOnly;» установить флаг ReadOnly.
Установка атрибутов в FileAttributes.Normal
работал для меня на обоих папки и файлов.
Единственное беспокойство, которое я испытываю при таком подходе, - это то, что если папка (или файл) имеет другой атрибут? Если папка скрыта и доступна только для чтения, и вы хотите сделать ее более неточным, ваш метод заставит ее больше не скрываться. Это может иметь непреднамеренные последствия. –
public static void DeleteDirectory(string path)
{
var directory = new DirectoryInfo(path)
{ Attributes =FileAttributes.Normal };
foreach (var info in directory.GetFileSystemInfos("*", SearchOption.AllDirectories))
{
info.Attributes = FileAttributes.Normal;
}
directory.Delete(true);
}
- 1. VBS Удалить Readonly атрибут recursivelty
- 2. Не удается удалить атрибут ReadOnly из файла
- 3. Как удалить атрибут readonly при нажатии кнопки
- 4. Удалить атрибут readonly из всех полей ввода с помощью jquery?
- 5. Как удалить мигающий курсор из поля readOnly?
- 6. импорта атрибут из родительского каталога
- 7. Как удалить атрибут ReadOnly на файл с помощью PowerShell?
- 8. JavaScript: readOnly Атрибут не задан
- 9. E/ExternalAccountType: Неподдерживаемый атрибут readOnly
- 10. ReadOnly Атрибут в MVC 4
- 11. Удалить файл из каталога
- 12. Удалить RandomAccessFile из каталога
- 13. Удалить атрибут из XmlNode
- 14. Удалить атрибут из объекта
- 15. Удалить атрибут из ArrayList()
- 16. Удалить атрибут из FactoryGirl
- 17. Удалить файлы из каталога внутри каталога документа?
- 18. C# Удалить Readonly из основной папки приложения
- 19. Удалить свойство readonly
- 20. Kendo Multiselect как установить атрибут readonly везде?
- 21. Атрибут READONLY не присваивается переменной PHP
- 22. Удалить символы из имени каталога
- 23. Невозможно удалить файл из каталога
- 24. Удалить файл из каталога PHP
- 25. Невозможно удалить файлы из каталога
- 26. Удалить файл из другого каталога
- 27. Попытка удалить файл из каталога
- 28. Удалить имя каталога из URL
- 29. Получить «Home Directory» атрибут из активного каталога
- 30. удаление атрибута readonly из каталога win 7 (c: \ dev)
@Lalit Чего вы пытаетесь достичь? –
см. У меня есть только папка для чтения на моем пути. Я хочу скопировать некоторые файлы в эту папку. так что хотите временно сделать его доступным для записи, значит удалить readonly, а затем скопировать файлы, а затем снова сделать этот фокус как только для чтения. Могу ли я помочь мне? Это требование. –
В Windows наличие атрибута readonly, установленного в каталоге, на самом деле довольно бессмысленно. Вы все равно можете удалить, переименовать и т. Д. Этот каталог. См. Https://support.microsoft.com/en-us/help/326549/you-cannot-view-or-change-the-read-only-or-the-system-attributes-of-folders-in-windows -server-2003, -in-windows-xp, -in-windows-vista-or-in-windows-7 для получения дополнительной информации. –