Определить, какое из заданных имен файлов не соответствует маске ell

Обновлено: 03.07.2024

gsutil поддерживает подстановочные знаки URI для файлов, сегментов и объектов. Например, команда:

копирует все объекты, начинающиеся с gs://bucket/data/abc, за которыми следует любое количество символов в этом подкаталоге.

Подстановочные знаки

gsutil использует следующие подстановочные знаки:

* Соответствует любому количеству символов на текущем уровне каталога. Например, gsutil cp gs://my-bucket/abc/d* . соответствует объекту abc/def.txt, но не соответствует объекту abc/def/g.txt. В случае gsutil ls , если завершающий * соответствует подкаталогу на текущем уровне каталога, содержимое подкаталога также отображается. **

Соответствует любому количеству символов за пределами каталога. При использовании как части пути к локальному файлу подстановочный знак ** всегда должен предшествовать разделителю каталогов. Например, my-directory/**.txt допустим, а my-directory/abc** — нет.

Вы можете комбинировать подстановочные знаки, чтобы обеспечить более точное соответствие, например:

Обратите внимание: если ваша команда не включает флаг для возврата нетекущих версий объекта в результатах, эти подстановочные знаки соответствуют только действующим версиям объекта.

gsutil поддерживает одинаковые подстановочные знаки для имен объектов и файлов. Так, например:

соответствует всем файлам, начинающимся с abc в каталоге данных локальной файловой системы.

Потенциально неожиданное поведение при использовании подстановочных знаков

Есть несколько способов, которыми использование подстановочных знаков может привести к неожиданному поведению:

При использовании подстановочных знаков в именах сегментов совпадения ограничиваются сегментами в проекте, указанном с помощью флага -p. Некоторые команды, такие как gsutil rm , не поддерживают флаг -p. Если флаг -p не используется или не может использоваться в команде, совпадения ограничиваются сегментами в проекте по умолчанию.

Оболочки (такие как bash и zsh) могут пытаться раскрыть подстановочные знаки перед передачей аргументов в gsutil. Если подстановочный знак должен был относиться к облачному объекту, это может привести к неожиданным ошибкам «Не найдено» (например, если оболочка попытается расширить подстановочный знак gs://my-bucket/* на локальном компьютере, не совпадая с локальным файлы и невыполнение команды).

Чтобы избежать этих проблем, заключите выражение с подстановочными знаками в одинарные (в Linux) или двойные кавычки (в Windows).

Попытка указать имя файла, содержащее подстановочные знаки, не сработает, поскольку gsutil пытается расширить подстановочные знаки, а не использовать их как буквальные символы. Например, запустив команду:

заставляет gsutil пытаться сопоставить часть [1] с подстановочным знаком.

Существует нерешенный вопрос о поддержке "необработанного" режима для gsutil, чтобы обеспечить способ работы с именами файлов, которые содержат подстановочные знаки, но до тех пор, пока эта поддержка не будет реализована, нет действительно хорошего способа использовать gsutil с такими именами файлов. . Вы можете использовать подстановочный знак для имени таких файлов, например, заменив указанную выше команду на:

но этот подход может быть сложным в использовании в целом.

Разное поведение файлов с точками в локальной файловой системе

В соответствии со стандартным поведением Unix подстановочный знак * соответствует только файлам, которые не начинаются с расширения . символ (во избежание путаницы с каталогами . и .., присутствующими во всех каталогах Unix). gsutil обеспечивает такое же поведение при использовании подстановочных знаков в URI файловой системы, но не обеспечивает такого поведения в облачных URI. Например, следующая команда копирует все объекты из gs://bucket1 в gs://bucket2:

но следующая команда копирует только те файлы, которые не начинаются с расширения . из каталога dir в gs://bucket1:

Эффективность: использование подстановочных знаков для многих объектов

Более эффективно, быстро и с меньшим объемом сетевого трафика использовать подстановочные знаки, которые имеют префикс имени объекта, не являющийся подстановочным знаком, например:

чем использование подстановочных знаков в качестве первой части имени объекта, например:

Это связано с тем, что запрос gs://bucket/abc*.txt просит сервер отправить обратно подмножество результатов, имя объекта которых начинается с abc в корне сегмента, а затем gsutil фильтрует список результатов для объектов, чьи имя заканчивается на .txt . Напротив, gs://bucket/*abc.txt запрашивает у сервера полный список объектов в корне корзины, а затем фильтрует те объекты, имя которых заканчивается на abc.txt. Это соображение об эффективности становится все более заметным при использовании сегментов, содержащих тысячи и более объектов. Иногда можно настроить имена ваших объектов так, чтобы они соответствовали ожидаемым шаблонам сопоставления с подстановочными знаками, чтобы воспользоваться преимуществами эффективности выполнения запросов префиксов на стороне сервера. См., например, gsutil help prod для конкретного примера использования.

Соображения эффективности: использование подстановочных знаков в середине пути

Предположим, у вас есть корзина со следующими объектами:

Если вы запустите команду:

gsutil выполняет список сегментов верхнего уровня, разделенных /, а затем один список сегментов для каждого подкаталога, всего 3 списка сегментов:

Чем больше списков сегментов требует подстановочный знак, тем медленнее и дороже он становится. Количество необходимых списков корзин растет по мере:

  • количество компонентов с подстановочными знаками (например, "gs://bucket/a??b/c*/*/d" содержит 3 компонента с подстановочными знаками);
  • количество подкаталогов, соответствующих каждому компоненту; и
  • количество результатов (пагинация реализована с помощью одного GET-запроса на 1000 результатов с указанием маркеров для каждого).

Если вы хотите использовать подстановочный знак в середине пути, попробуйте вместо этого использовать рекурсивный подстановочный знак, например:

Это соответствует большему количеству объектов, чем gs://bucket/*/obj5 (поскольку охватывает каталоги), но реализовано с использованием запроса списка сегментов без разделителей (что означает меньшее количество запросов сегмента, хотя в нем отображается весь сегмент и фильтры). локально, так что может потребоваться нетривиальный объем сетевого трафика).

Если не указано иное, содержимое этой страницы предоставляется по лицензии Creative Commons Attribution 4.0, а образцы кода — по лицензии Apache 2.0. Подробнее см. в Правилах сайта Google Developers. Java является зарегистрированным товарным знаком Oracle и/или ее дочерних компаний.

Некоторая информация относится к предварительной версии продукта, которая может быть существенно изменена до ее выпуска. Microsoft не дает никаких явных или подразумеваемых гарантий в отношении представленной здесь информации.

Возвращает имена файлов, соответствующих заданным критериям.

Перегрузки

Возвращает имена файлов (включая их пути) в указанном каталоге.

Возвращает имена файлов (включая их пути), которые соответствуют указанному шаблону поиска в указанном каталоге.

Возвращает имена файлов (включая их пути), которые соответствуют указанному шаблону поиска и параметрам перечисления в указанном каталоге.

Возвращает имена файлов (включая их пути), которые соответствуют указанному шаблону поиска в указанном каталоге, используя значение для определения необходимости поиска в подкаталогах.

Получить файлы(строка)

Возвращает имена файлов (включая их пути) в указанном каталоге.

Параметры

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

Возврат

Массив полных имен (включая пути) файлов в указанном каталоге или пустой массив, если файлы не найдены.

Исключения

путь — это имя файла.

Произошла ошибка сети.

У вызывающего абонента нет необходимого разрешения.

Указанный путь, имя файла или оба параметра превышают максимальную длину, определенную системой.

Указанный путь не найден или недействителен (например, он находится на несопоставленном диске).

Примеры

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

Примечания

Методы EnumerateFiles и GetFiles различаются следующим образом: при использовании EnumerateFiles можно начать перечисление коллекции имен до того, как будет возвращена вся коллекция; когда вы используете GetFiles, вы должны дождаться возврата всего массива имен, прежде чем вы сможете получить доступ к массиву. Поэтому, когда вы работаете с большим количеством файлов и каталогов, EnumerateFiles может быть более эффективным.

Имена возвращаемых файлов добавляются к указанному параметру пути.

Этот метод идентичен GetFiles(String, String) со звездочкой (*), указанной в качестве шаблона поиска.

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

Порядок возвращаемых имен файлов не гарантируется; используйте метод Sort, если требуется определенный порядок сортировки.

Параметр пути не чувствителен к регистру.

Список общих задач ввода-вывода см. в разделе Общие задачи ввода-вывода.

См. также

Относится к

Получить файлы(строка, строка)

Возвращает имена файлов (включая их пути), которые соответствуют указанному шаблону поиска в указанном каталоге.

Параметры

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

Строка поиска для сопоставления с именами файлов в пути . Этот параметр может содержать комбинацию допустимого прямого пути и подстановочных знаков (* и ?), но не поддерживает регулярные выражения.

Возврат

Массив полных имен (включая пути) файлов в указанном каталоге, соответствующих заданному шаблону поиска, или пустой массив, если файлы не найдены.

Исключения

путь — это имя файла.

Произошла ошибка сети.

У вызывающего абонента нет необходимого разрешения.

searchPattern не содержит допустимого шаблона.

path или searchPattern имеет значение null .

Указанный путь, имя файла или оба параметра превышают максимальную длину, определенную системой.

Указанный путь не найден или недействителен (например, он находится на несопоставленном диске).

Примеры

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

Примечания

Возвращаемые имена файлов добавляются к указанному параметру пути, и порядок возвращаемых имен файлов не гарантируется; используйте метод Sort, если требуется определенный порядок сортировки.

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

Подстановочный знак Соответствия
* (звездочка) Ноль или более символов в этой позиции.
? (вопросительный знак) Ноль или один символ в этой позиции.

Символы, кроме подстановочных знаков, являются буквальными символами. Например, строка searchPattern "*t" ищет все имена в пути, оканчивающемся на букву "t". Строка searchPattern "s*" ищет все имена в пути, начинающемся с буквы "s".

SearchPattern не может заканчиваться двумя точками ("..") или содержать две точки (".."), за которыми следует DirectorySeparatorChar или AltDirectorySeparatorChar, а также не может содержать недопустимых символов. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars.

При использовании подстановочного знака звездочки в шаблоне поиска, таком как "*.txt", количество символов в указанном расширении влияет на поиск следующим образом:

  • Если указанное расширение состоит ровно из трех символов, метод возвращает файлы с расширениями, начинающимися с указанного расширения. Например, "*.xls" возвращает как "book.xls", так и "book.xlsx".
  • Во всех остальных случаях метод возвращает файлы, точно соответствующие указанному расширению. Например, "*.ai" возвращает "file.ai", но не "file.aif".

При использовании подстановочного знака вопросительного знака этот метод возвращает только файлы, соответствующие указанному расширению файла. Например, для двух файлов, "file1.txt" и "file1.txtother", в каталоге, шаблон поиска "file?.txt" возвращает только первый файл, тогда как шаблон поиска "file*.txt" возвращает оба файла.

Поскольку этот метод проверяет имена файлов как в формате имени файла 8.3, так и в формате длинного имени файла, шаблон поиска, аналогичный "*1*.txt", может возвращать неожиданные имена файлов. Например, при использовании шаблона поиска "*1*.txt" возвращается "longfilename.txt", поскольку эквивалентным форматом имени файла версии 8.3 является "LONGFI~1.TXT".

Методы EnumerateFiles и GetFiles различаются следующим образом: при использовании EnumerateFiles можно начать перечисление коллекции имен до того, как будет возвращена вся коллекция; когда вы используете GetFiles, вы должны дождаться возврата всего массива имен, прежде чем вы сможете получить доступ к массиву. Поэтому, когда вы работаете с большим количеством файлов и каталогов, EnumerateFiles может быть более эффективным.

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

Мне нужно решить, соответствует ли имя файла маске файла. Маска файла может содержать * или ? персонажи. Есть ли какое-нибудь простое решение для этого?

13 ответов 13

Я ценю, что нашел ответ Джоэла, он также сэкономил мне время! Однако мне пришлось внести несколько изменений, чтобы метод работал так, как ожидало большинство пользователей:

  • Я удалил ключевое слово this перед первым аргументом. Здесь он ничего не делает (хотя может быть полезен, если метод предназначен для использования в качестве метода расширения, и в этом случае он должен быть общедоступным и содержаться в статическом классе, а сам должен быть статическим методом).
  • Я сделал регулярное выражение независимым от регистра, чтобы оно соответствовало стандартному поведению подстановочных знаков Windows (например, "c*.*" и "C*.*" возвращают один и тот же результат).
  • Я добавил начальную и конечную привязки к регулярному выражению, опять же, чтобы соответствовать стандартному поведению подстановочных знаков Windows (например, "stuff.txt" будет соответствовать "stuff*", "s*" или "s*.*", но а не просто "s").

Обновление 2009.11.04: соответствие одной из нескольких масок

Для еще большей гибкости здесь используется плагин-совместимый метод, созданный поверх оригинала. Эта версия позволяет передавать несколько масок (отсюда множественное число во втором имени параметра fileMasks), разделенных линиями, запятыми, вертикальными чертами или пробелами. Я хотел, чтобы пользователь мог поместить в ListBox столько вариантов, сколько пожелает, а затем выбрать все файлы, соответствующие любому из них. Обратите внимание, что некоторые элементы управления (например, ListBox) используют CR-LF для разрывов строк, в то время как другие (например,RichTextBox) используют только LF, поэтому и "\r\n", и "\n" отображаются в списке разделения.

Обновление 2009.11.17: более изящная обработка входных данных fileMask

Предыдущая версия FitsMask (которую я оставил для сравнения) неплохо справляется со своей задачей, но, поскольку мы рассматриваем ее как регулярное выражение, она выдает исключение, если при входе не является допустимым регулярным выражением. Решение состоит в том, что мы действительно хотим, чтобы любые метасимволы регулярных выражений во входном файлеMask считались литералами, а не метасимволами. Но нам все еще нужно специально обрабатывать точку, звездочку и вопросительный знак. Таким образом, эта улучшенная версия FitsMask безопасно убирает эти три символа, преобразует все оставшиеся метасимволы в литералы, а затем возвращает три интересных символа обратно в их "регулярно выраженную" форму.

Еще одно незначительное улучшение – возможность независимости от регистра в соответствии со стандартным поведением Windows.

Обновление 30.09.2010: где-то по пути возникла страсть.

Я небрежно не обновил это ранее, но эти ссылки, вероятно, будут интересны читателям, которые дошли до этого места:

Во время поиска повторяющихся файлов имя каждого файла проверяется и сравнивается с настройками, заданными в разделе «Имена файлов» на закрепляемой панели «Фильтрация поиска».

Маски имен файлов могут быть как включающими, так и исключающими (подробности см. ниже).

Маски имен файлов могут быть определены с использованием одного из двух синтаксисов: шаблонов подстановочных знаков (по умолчанию) или более сложных регулярных выражений. Используйте переключатель "Использовать сопоставление с регулярным выражением" в разделе масок имен файлов на панели фильтрации поиска, чтобы переключаться между этими двумя режимами.

Шаблоны подстановочных знаков (включая и исключая)

При работе в режиме шаблона подстановочных знаков маски имен файлов состоят из шаблонов символов с несколькими наборами масок, разделенных точкой с запятой. Подстановочные знаки включают '?' и '*', которые соответствуют либо одному экземпляру, либо нескольким экземплярам любого символа (соответственно). Любой другой символ (не подстановочный знак) соответствует самому себе.

Кроме того, любой маске имени файла может предшествовать символ тильды ('~'), который указывает, что маска является исключающей. Если имя файла соответствует исключающей маске, файл всегда будет пропущен.

Вы также можете использовать переключатель "Сравнить полный путь", чтобы сравнить весь путь файловой системы (а не только имя файла) с заданным фильтром.

Примеры подстановочных знаков

Вот несколько примеров масок имен файлов с подстановочными знаками:

• mypicture.bmp — в этой маске нет подстановочных знаков, поэтому она соответствует буквальному. В процесс сравнения дубликатов будут включены только файлы с именем "mypicture.bmp".

• *.bmp — эта маска использует символ звездочки ('*') для включения любых файлов с расширением ".bmp" в именах.

• *.bmp;*gif;*jpg — это составная маска с отдельными элементами, разделенными точкой с запятой. Эта маска будет соответствовать любым файлам ".bmp", ".jpg" или ".jpg", которые она встретит.

• ~family*;*.bmp — первому элементу этой составной маски предшествует тильда ('~'), что означает, что будут исключены все файлы, имена которых начинаются с "family". Затем он будет включать все файлы с расширением ".bmp" в своих именах.

В разделе имен файлов на панели закрепления «Фильтрация поиска» также есть кнопка «Предустановки», которую можно нажать для быстрого доступа к ряду встроенных масок (называемых «Группы файлов»). Они помогут вам быстро приступить к работе, а также могут быть настроены в соответствии с вашими потребностями.

Важное примечание. При использовании подстановочных знаков в масках имен файлов имейте в виду, что маска '*.*' немного отличается от простой '*'. Первый требует наличия точки (.) в имени файла, а второй — нет. Другими словами, шаблон *.* не будет соответствовать именам файлов без расширения. Если вы хотите сопоставить их, используйте вместо этого только одну звездочку (*).

Как отмечалось выше, маски имен файлов также можно определять с помощью мощного синтаксиса регулярных выражений. Регулярные выражения — это формулы, которые можно использовать для сопоставления строк текста, следующих некоторому шаблону. Они позволяют своим пользователям кратко выражать набор правил сопоставления символов, которые в противном случае потребовали бы большого количества переключателей и логических операций.

Duplicate File Detective использует механизм регулярных выражений, совместимый с ECMAScript, и связанный с ним синтаксис.

В этом справочном файле не содержится подробного руководства по формированию регулярных выражений, поскольку в Интернете имеется большое количество таких руководств (зайдите в свою любимую поисковую систему и введите "регулярные выражения" или "регулярные выражения ECMAScript"). синтаксис выражения" в поле поиска, чтобы найти их).

Примеры регулярных выражений:

• .* — соответствует всему (например, любому имени файла).

• .*(back).* — соответствует любому имени файла, содержащему слово "back"

• ^(. *settings).* — соответствует любому имени файла, НЕ содержащему слова «settings».

• ^(. *settings)(.*удивление).* — Соответствует любому имени файла, содержащему слово «удивление», но НЕ содержащему слово «настройки».

• ^front.* — соответствует любому имени файла, начинающемуся со слова «front».

• .*\d.* — Соответствует именам файлов, содержащим четырехзначное число.

Исключение защищенных типов файлов

По умолчанию Duplicate File Detective исключает защищенные типы файлов из процесса поиска дубликатов. Для управления защищенными типами файлов перейдите на вкладку «Защита» в окне «Настройки».

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

Файл функции: movefile ( f1 ) Файл функции: movefile ( f1 , f2 ) Файл функции: movefile ( f1 , f2 , 'f')< /em> Функциональный файл: [ status , msg , msgid ] = movefile (…)

Переместите исходные файлы или каталоги f1 в место назначения f2 .

Имя f1 может содержать подстановочные шаблоны. Если f1 расширяется до нескольких имен файлов, f2 должен быть каталогом. Если место назначения f2 не указано, то местом назначения является текущий рабочий каталог. Если f2 является именем файла, то f1 переименовывается в f2 .

Если установлен принудительный флаг 'f', любые существующие файлы будут перезаписаны без запроса.

В случае успеха статус равен 1, а msg , msgid являются пустыми строками символов (""). В противном случае статус равен 0, msg содержит зависящее от системы сообщение об ошибке, а msgid содержит уникальный идентификатор сообщения. Обратите внимание, что код состояния полностью противоположен коду системной команды.

Встроенная функция: переименовать старое новое Встроенная функция: [ err , msg ] = переименовать ( старое , новое ) < /p>

Изменить имя старого файла на новое .

В случае успеха err равен 0, а msg — пустой строке. В противном случае err отличен от нуля, а msg содержит зависящее от системы сообщение об ошибке.

Файл функции: [ status , msg , msgid ] = файл копирования ( f1 , f2 ) Файл функции: [ status , msg , msgid ] = копировать файл ( f1 , f2 , 'f')

Скопируйте исходные файлы или каталоги f1 в место назначения f2 .

Имя f1 может содержать подстановочные шаблоны. Если f1 расширяется до нескольких имен файлов, f2 должен быть каталогом.

Если установлен принудительный флаг 'f', любые существующие файлы будут перезаписаны без запроса.

В случае успеха статус равен 1, а msg , msgid являются пустыми строками символов (""). В противном случае статус равен 0, msg содержит зависящее от системы сообщение об ошибке, а msgid содержит уникальный идентификатор сообщения. Обратите внимание, что код состояния полностью противоположен коду системной команды.

Встроенная функция: [ err , msg ] = удалить ссылку ( файл )

Удалить файл с именем file .

В случае успеха err равен 0, а msg — пустой строке. В противном случае err отличен от нуля, а msg содержит зависящее от системы сообщение об ошибке.

Встроенная функция: ссылка старая новая Встроенная функция: [ err , msg ] = ссылка ( старая , новая ) < /p>

Создайте новую ссылку (также известную как жесткая ссылка) на существующий файл.

В случае успеха err равен 0, а msg — пустой строке. В противном случае err отличен от нуля, а msg содержит зависящее от системы сообщение об ошибке.

Встроенная функция: символическая ссылка старый новый Встроенная функция: [ err , msg ] = символическая ссылка ( старый , новый ) < /p>

Создайте новую символическую ссылку, содержащую строку old .

В случае успеха err равен 0, а msg — пустой строке. В противном случае err отличен от нуля, а msg содержит зависящее от системы сообщение об ошибке.

Встроенная функция: ссылка для чтения символическая ссылка Встроенная функция: [результат, ошибка, сообщение] = ссылка для чтения (символическая ссылка)

Прочитайте значение символической ссылки .

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

Встроенная функция: mkdir dir Встроенная функция: mkdir ( parent , dir ) Встроенная функция: [ status , msg , msgid ] = mkdir (…)

Создайте каталог с именем dir в родительском каталоге.

Если родительский каталог не указан, используется текущий рабочий каталог.

В случае успеха статус равен 1, а msg , msgid являются пустыми строками символов (""). В противном случае статус равен 0, msg содержит зависящее от системы сообщение об ошибке, а msgid содержит уникальный идентификатор сообщения.

При создании каталога будут установлены права доступа 0777 - umask .

Встроенная функция: rmdir dir Встроенная функция: rmdir ( dir , "s") Встроенная функция: [ status , msg , msgid ] = rmdir (…)

Удалите каталог с именем dir .

Если необязательному второму параметру присвоено значение "s", также рекурсивно удалите все подкаталоги.

В случае успеха статус равен 1, а msg , msgid являются пустыми строками символов (""). В противном случае статус равен 0, msg содержит зависящее от системы сообщение об ошибке, а msgid содержит уникальный идентификатор сообщения.

Встроенная функция: val = confirm_recursive_rmdir () Встроенная функция: old_val = confirm_recursive_rmdir ( new_val ) Встроенная функция: confirm_recursive_rmdir ( new_val , "local")

Запросить или установить внутреннюю переменную, которая определяет, будет ли Octave запрашивать подтверждение перед рекурсивным удалением дерева каталогов.

При вызове из функции с опцией "local" переменная изменяется локально для функции и всех вызываемых ею подпрограмм. Исходное значение переменной восстанавливается при выходе из функции.

См. также: rmdir.

Встроенная функция: err = mkfifo ( имя , режим ) Встроенная функция: [ err , msg ] = mkfifo < em>(имя, режим)

Создайте специальный файл FIFO с именем name и режимом файлового режима .

mode интерпретируется как десятичное число (не восьмеричное) и подлежит обработке umask. Окончательный расчетный режим — это режим — umask .

В случае успеха err равен 0, а msg — пустой строке. В противном случае err отличен от нуля, а msg содержит зависящее от системы сообщение об ошибке.

См. также: труба, umask.

Встроенная функция: umask (маска)

Установите маску разрешения для создания файла.

Маска параметра представляет собой целое число, интерпретируемое как восьмеричное число.

В случае успеха возвращает предыдущее значение маски (как целое число, которое должно интерпретироваться как восьмеричное число); в противном случае печатается сообщение об ошибке.

Маска разрешений — это концепция UNIX, используемая при создании новых объектов в файловой системе, таких как файлы, каталоги или именованные FIFO. Создаваемый объект имеет базовые разрешения в режиме восьмеричного числа, которые изменяются в соответствии с восьмеричным значением маски. Окончательные разрешения для нового объекта: режим-маска.

Встроенная функция: [ информация , ошибка , сообщение ] = stat ( файл ) Встроенная функция: [ информация , ошибка , сообщение ] = stat ( fid ) Встроенная функция: [ info , err , msg ] = lstat ( file ) Встроенная функция : [ info , err , msg ] = lstat ( fid )

Возвращает информацию о структуре, содержащую следующую информацию о файле или идентификаторе файла fid .

ID устройства, содержащего запись каталога для этого файла.

Номер файла.

Режим файла, как целое число. Используйте функции S_ISREG , S_ISDIR , S_ISCHR , S_ISBLK , S_ISFIFO , S_ISLNK или S_ISSOCK для извлечения информации из этого значения.

Режим файла — строка из десяти букв или дефисов, возвращаемая командой ls -l .

Количество ссылок.

Идентификатор пользователя владельца файла.

Идентификатор группы файла.

ID устройства для блочных или символьных специальных файлов.

Время последнего доступа в той же форме, что и значения времени, возвращенные из time . См. Утилиты синхронизации.

Время последнего изменения в той же форме, что и значения времени, возвращаемые из time . См. Утилиты синхронизации.

Время последнего изменения состояния файла в той же форме, что и значения времени, возвращаемые из time . См. Утилиты синхронизации.

Размер блоков в файле.

Количество блоков, выделенных для файла.

Если вызов успешен, err равен 0, а msg — это пустая строка. Если файл не существует или произошла какая-то другая ошибка, информация — это пустая матрица, ошибка равна -1, а сообщение содержит соответствующее системное сообщение об ошибке.

Если файл является символической ссылкой, stat вернет информацию о фактическом файле, на который ссылается ссылка. Используйте lstat, если вам нужна информация о самой символической ссылке.

Встроенная функция: S_ISBLK ( режим )

Возвращает значение true, если режим соответствует блочному устройству.

Предполагается, что значение режима возвращается из вызова stat .

См. также: stat, lstat.

Встроенная функция: S_ISCHR ( режим )

Возвращает true, если режим соответствует символьному устройству.

Предполагается, что значение режима возвращается из вызова stat .

См. также: stat, lstat.

Встроенная функция: S_ISDIR ( режим )

Возвращает значение true, если режим соответствует каталогу.

Предполагается, что значение режима возвращается из вызова stat .

См. также: stat, lstat.

Встроенная функция: S_ISFIFO ( режим )

Возвращает true, если режим соответствует fifo.

Предполагается, что значение режима возвращается из вызова stat .

См. также: stat, lstat.

Встроенная функция: S_ISLNK ( режим )

Возвращает значение true, если режим соответствует символической ссылке.

Предполагается, что значение режима возвращается из вызова stat .

См. также: stat, lstat.

Встроенная функция: S_ISREG ( режим )

Возвращает значение true, если режим соответствует обычному файлу.

Предполагается, что значение режима возвращается из вызова stat .

См. также: stat, lstat.

Встроенная функция: S_ISSOCK ( режим )

Возвращает значение true, если режим соответствует сокету.

Предполагается, что значение режима возвращается из вызова stat .

См. также: stat, lstat.

Файл функции: [ статус , результат , msgid ] = атрибут файла ( файл )

Вернуть информацию о файле .

В случае успеха статус равен 1, а результат содержит структуру со следующими полями:

Полное имя файла.

Истинно, если файл является архивом (Windows).

Истинно, если файл является системным файлом (Windows).

Истинно, если файл является скрытым файлом (Windows).

Истинно, если файл является каталогом.

Пользовательское чтение Групповое чтение Прочее чтение

Истинно, если у пользователя (группы; других пользователей) есть разрешение на чтение файла .

UserWrite GroupWrite OtherWrite

Верно, если у пользователя (группы; других пользователей) есть разрешение на запись в файл .

UserExecute GroupExecute OtherExecute

Верно, если у пользователя (группы; других пользователей) есть разрешение на выполнение файла .

Если атрибут не применяется (например, архив в системе Unix), тогда в поле устанавливается значение NaN.

Без входных аргументов возвращает информацию о текущем каталоге.

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

См. также: глоб.

Файл функции: isdir ( f )

Возвращает значение true, если f является каталогом.

Встроенная функция: files = readdir ( dir ) Встроенная функция: [ files , err , msg ] = readdir < em>(директория)

Возвращает имена файлов в каталоге dir в виде массива ячеек строк.

В случае ошибки вернуть пустой массив ячеек в файлах . В случае успеха err равен 0, а msg — пустой строке. В противном случае err отличен от нуля, а msg содержит зависящее от системы сообщение об ошибке.

Встроенная функция: glob (шаблон)

По заданному массиву строк шаблона (в виде массива символов или массива ячеек) в pattern , вернуть массив ячеек с именами файлов, которые соответствуют любому из них, или пустой массив ячеек, если шаблоны не совпадают.

Строки шаблонов интерпретируются как шаблоны подстановки имен файлов (поскольку они используются оболочками Unix).

В шаблоне

соответствует любой строке, включая нулевую строку,

соответствует любому одиночному символу и

соответствует любому из заключенных символов.

Расширение с помощью тильды выполняется для каждого из шаблонов перед поиском совпадающих имен файлов. Например:

Встроенная функция: file_in_path ( путь , файл ) Встроенная функция: file_in_path ( путь , файл , "все")

Вернуть абсолютное имя файла, если его можно найти в пути.

Значение path должно быть списком каталогов, разделенных двоеточием, в формате, описанном для path . Если файл не найден, вернуть пустую строку символов. Например:

Если вторым аргументом является массив ячеек строк, найдите в каждом каталоге пути элемент массива ячеек и верните первый соответствующий элемент.

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

Встроенная функция: filesep () Встроенная функция: filesep ("all")

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

Если указано "все", функция возвращает все допустимые разделители файлов в виде строки. Список разделителей файлов зависит от системы. Это ‘/’ (косая черта) в UNIX или Mac OS X, ‘/’ и ‘\’ (прямая и обратная косая черта) в Windows.

См. также: pathsep.

Встроенная функция: val = маркер файла () Встроенная функция: old_val = маркер файла ( new_val ) Встроенная функция: filemarker ( new_val , "local")

Запросите или установите символ, используемый для отделения имени файла от имен подфункций, содержащихся в файле.

По умолчанию это символ ‘ > ’. Это можно использовать в общем случае для взаимодействия с подфункциями. Например,

возвращает строку справки, связанную с подфункцией mysubfunc, расположенной в файле myfunc.m .

filemarker также полезен во время отладки для размещения точек останова внутри подфункций или вложенных функций. Например,

установит точку останова в первой строке подфункции mysubfunc .

При вызове из функции с опцией "local" переменная изменяется локально для функции и всех вызываемых ею подпрограмм. Исходное значение переменной восстанавливается при выходе из функции.

Файл функции: [ dir , name , ext ] = части файла ( имя файла )

Возвращает компоненты каталога, имени и расширения имени файла .

Имя входного файла представляет собой строку, которая анализируется.Не предпринимается никаких попыток проверить, действительно ли существует указанное имя файла или каталог.

Файл функции: имя файла = полный файл ( dir1 , dir2 , …, файл ) Файл функции: имя файла = полный файл (… , файлы )

Построить полное имя файла из отдельных частей.

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

Если последняя часть компонента представляет собой массив ячеек, возвращает массив ячеек с путями к файлам, по одному для каждого элемента в последнем компоненте, например:

В системах Windows, несмотря на то, что разделители файлов с косой чертой работают, они заменяются на обратную косую черту; кроме того, буквы дисков лишены начальных разделителей файлов, чтобы получить правильный путь к файлу.

Встроенная функция: tilde_expand ( string )

Выполнить преобразование тильды в строку .

Если строка начинается с символа тильды (' ~ '), все символы, предшествующие первой косой черте (или все символы, если косой черты нет), рассматриваются как возможное имя пользователя, а тильда и последующие символы символы до косой черты заменяются домашним каталогом указанного пользователя. Если за тильдой сразу следует косая черта, тильда заменяется домашним каталогом пользователя, работающего с Octave.

Вернуть каноническое имя файла fname .

Если файл не существует, возвращается пустая строка ("").

Встроенная функция: make_absolute_filename ( файл )

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

Проверка существования файла не производится.

Встроенная функция: is_absolute_filename ( файл )

Возвращает значение true, если файл является абсолютным именем файла.

Встроенная функция: is_rooted_relative_filename ( файл )

Возвращает значение true, если имя файла является относительно корневым.

Файл функции: current_state = recycle () Файл функции: old_state = recycle ( new_state )

Запросите или задайте параметр повторного использования удаленных файлов.

Если перезапись включена, команды, которые безвозвратно удаляют файлы, вместо того, чтобы перемещать их во временное место (например, в папку с пометкой "Корзина").

Примечание по программированию. Эта функция предусмотрена для совместимости с MATLAB, но повторное использование не реализовано в Octave. Чтобы избежать случайной потери данных, при попытке включить повторное использование файлов возникнет ошибка.

Читайте также: