Лучший способ сделать файл записываемым в c#

Исходная страница предлагает детали о получении gcc для автоматической векторизации циклов, включая несколько примеров:

http://gcc.gnu.org/projects/tree-ssa/vectorization.html

, В то время как примеры являются большими, оказывается, что синтаксис для вызова тех опций с последним GCC, кажется, изменился немного, видел теперь:

, Таким образом, следующие опции будут работать на x86 микросхемы с SSE2, давая журнал циклов, которые были векторизованы:

gcc -O2 -ftree-vectorize -msse2 -ftree-vectorizer-verbose=5

Примечание, что-msse является также возможностью, но это только векторизует циклы с помощью плаваний, не, удваивается или ints.

35
задан Alex Jolig 14 December 2015 в 09:30
поделиться

3 ответа

Двумя способами:

System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);
fileInfo.IsReadOnly = true/false;

или

// Careful! This will clear other file flags e.g. FileAttributes.Hidden
File.SetAttributes(filePath, FileAttributes.ReadOnly/FileAttributes.Normal);

Свойство IsReadOnly в FileInfo, по сути, выполняет переключение битов, которое вам придется делать вручную во втором методе.

64
ответ дан 27 November 2019 в 06:33
поделиться

Чтобы установить флаг только для чтения, что фактически делает файл недоступным для записи:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) | FileAttributes.ReadOnly);

Чтобы удалить флаг только для чтения, фактически делая файл доступным для записи:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) & ~FileAttributes.ReadOnly);

Чтобы переключить флаг только для чтения, сделав его противоположным тому, что он сейчас есть:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) ^ FileAttributes.ReadOnly);

По сути, это битовые маски. Вы устанавливаете определенный бит для установки флага только для чтения, вы сбрасываете его, чтобы удалить флаг.

Обратите внимание, что приведенный выше код не изменит никаких других свойств файла. Другими словами, если файл был скрыт до того, как вы выполнили приведенный выше код, он останется скрытым и после этого. Если вы просто установите для атрибутов файла значение .Normal или .ReadOnly , вы можете потерять другие флаги в процессе.

37
ответ дан 27 November 2019 в 06:33
поделиться

c #:

File.SetAttributes (filePath, FileAttributes.Normal);

File.SetAttributes (filePath, FileAttributes.ReadOnly);

1
ответ дан 27 November 2019 в 06:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: