Укажите, какое из следующих имен файлов соответствует маске ese, т.е. t
Обновлено: 21.11.2024
Имена файлов Windows состоят из двух частей. имя файла, затем точка, за которой следует расширение (суффикс). Расширение представляет собой трех- или четырехбуквенную аббревиатуру, обозначающую тип файла. Например, в файле letter.docx имя файла — буква, а расширение — docx. Расширения важны, потому что они сообщают вашему компьютеру, какой значок использовать для файла и какое приложение может открыть файл. Например, расширение doc сообщает вашему компьютеру, что файл является файлом Microsoft Word.
Если вы хотите открыть файл MAC OS X в Windows, вам может потребоваться добавить расширение к имени файла MAC OS X, чтобы Windows могла его распознать. Например, если у вас есть документ Word 6 MAC OS X с именем letter, который вы хотите открыть в Windows, вам нужно переименовать файл letter.docx, чтобы Word в Windows распознал и открыл этот файл.
Примечание. Этот список ни в коем случае не является полным и исчерпывающим списком расширений файлов. Если используемое вами расширение файла отсутствует в списке ниже, вы можете найти информацию в руководстве по программному обеспечению или на веб-сайте программного обеспечения.
Примечание. Если ни у одного из ваших имен файлов нет расширений, расширения файлов будут скрыты. См. Отображение расширений файлов
Отображение расширений файлов
Если ни одно из ваших имен файлов не имеет расширений, расширения файлов скрыты. Чтобы показать расширения файлов:
<р>1. В Проводнике откройте вкладку "Вид" и установите флажок рядом с "Расширения имен файлов".<р>1. Нажмите на меню "Пуск" и введите "Показать скрытые файлы и папки", затем нажмите клавишу ввода или выберите этот параметр в списке результатов.
Поиск расширений файлов
Иногда может потребоваться выполнить поиск всех файлов определенного типа. Например, вы можете найти файл .pst или файл .mp3 на своем компьютере. Выполните следующие действия, чтобы найти расширение файла.
<р>1. Щелкните меню «Пуск» или строку поиска и введите «*», а затем расширение файла, который вы хотите найти (например, *.jpg), и нажмите клавишу «Ввод».
Некоторая информация относится к предварительной версии продукта, которая может быть существенно изменена до ее выпуска. Microsoft не дает никаких явных или подразумеваемых гарантий в отношении представленной здесь информации.
Возвращает перечисляемую коллекцию полных имен файлов, соответствующих заданным критериям.
Перегрузки
Возвращает перечисляемую коллекцию полных имен файлов, соответствующих шаблону поиска по указанному пути, и, при необходимости, выполняет поиск в подкаталогах.
Возвращает перечисляемую коллекцию полных имен файлов, которые соответствуют шаблону поиска и параметрам перечисления в указанном пути, и, при необходимости, выполняет поиск в подкаталогах.
Возвращает перечисляемую коллекцию полных имен файлов по указанному пути.
Возвращает перечисляемую коллекцию полных имен файлов, соответствующих шаблону поиска по указанному пути.
EnumerateFiles(String, String, SearchOption)
Возвращает перечисляемую коллекцию полных имен файлов, соответствующих шаблону поиска по указанному пути, и, при необходимости, выполняет поиск в подкаталогах.
Параметры
Относительный или абсолютный путь к каталогу для поиска. В этой строке не учитывается регистр.
Строка поиска для сопоставления с именами файлов в пути . Этот параметр может содержать комбинацию допустимого прямого пути и подстановочных знаков (* и ?), но не поддерживает регулярные выражения.
Одно из значений перечисления, указывающее, должна ли операция поиска включать только текущий каталог или все подкаталоги. Значение по умолчанию — TopDirectoryOnly.
Возврат
Перечислимая коллекция полных имен (включая пути) файлов в каталоге, указанном путем и соответствующих заданному шаблону поиска и параметру поиска.
Исключения
searchPattern не содержит допустимого шаблона.
searchPattern имеет значение null .
searchOption не является допустимым значением SearchOption.
недопустимый путь, например ссылка на несопоставленный диск.
путь — это имя файла.
Указанный путь, имя файла или их комбинация превышают максимальную длину, определенную системой.
У вызывающего абонента нет необходимого разрешения.
У вызывающего абонента нет необходимого разрешения.
Примеры
В следующем примере показано, как получить все текстовые файлы в каталоге и его подкаталогах и переместить их в новый каталог. После перемещения файлы больше не существуют в исходных каталогах.
В следующем примере рекурсивно перечисляются все файлы с расширением .txt, считывается каждая строка файла и отображается строка, если она содержит строку "Microsoft".
Примечания
searchPattern может быть комбинацией буквенных и подстановочных знаков, но не поддерживает регулярные выражения. В searchPattern разрешены следующие подстановочные знаки.
Подстановочный знак | Соответствия |
---|---|
* (звездочка) | Ноль или более символов в этой позиции. |
? (вопросительный знак) | Ноль или один символ в этой позиции. |
Символы, кроме подстановочных знаков, являются буквальными символами. Например, строка searchPattern "*t" ищет все имена в пути, оканчивающемся на букву "t". Строка searchPattern "s*" ищет все имена в пути, начинающемся с буквы "s".
searchPattern не может заканчиваться двумя точками ("..") или содержать две точки (".."), за которыми следует DirectorySeparatorChar или AltDirectorySeparatorChar, а также не может содержать недопустимых символов. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars.
Вы можете указать информацию об относительном пути с помощью параметра пути. Информация об относительном пути интерпретируется как относительная к текущему рабочему каталогу, который можно определить с помощью метода GetCurrentDirectory.
Методы EnumerateFiles и GetFiles различаются следующим образом: при использовании EnumerateFiles можно начать перечисление коллекции имен до того, как будет возвращена вся коллекция. Когда вы используете GetFiles, вы должны дождаться возврата всего массива имен, прежде чем вы сможете получить доступ к массиву. Поэтому, когда вы работаете с большим количеством файлов и каталогов, EnumerateFiles может быть более эффективным.
Возвращенная коллекция не кэшируется; каждый вызов GetEnumerator в коллекции запускает новое перечисление.
Мне нужно решить, соответствует ли имя файла маске файла. Маска файла может содержать * или ? персонажи. Есть ли какое-нибудь простое решение для этого?
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" отображаются в списке разделения.< /p>
Обновление 2009.11.17: более изящная обработка входных данных fileMask
Предыдущая версия FitsMask (которую я оставил для сравнения) неплохо справляется со своей задачей, но, поскольку мы рассматриваем ее как регулярное выражение, она выдает исключение, если при входе не является допустимым регулярным выражением. Решение состоит в том, что мы действительно хотим, чтобы любые метасимволы регулярных выражений во входном файлеMask считались литералами, а не метасимволами. Но нам все еще нужно специально обрабатывать точку, звездочку и вопросительный знак. Таким образом, эта улучшенная версия FitsMask безопасно убирает эти три символа, преобразует все оставшиеся метасимволы в литералы, а затем возвращает три интересных символа обратно в их "регулярно выраженную" форму.
Еще одно незначительное улучшение – возможность независимости от регистра в соответствии со стандартным поведением Windows.
Обновление 30.09.2010: где-то по пути возникла страсть.
Я небрежно не обновил это ранее, но эти ссылки, вероятно, будут интересны читателям, которые дошли до этого места:
Маски файлов и подстановочные знаки поддерживаются в любом действии или параметрах триггера, которые указывают имена папок или файлов, обычно в действиях "Файловая система", "Сжатие", "Криптография" и "FTP". Маска файла, по сути, представляет собой набор фиксированных и подстановочных знаков, используемых для сопоставления имен папок и файлов.Они предоставляют гибкие средства для идентификации определенного файла или группы файлов на основе их имени и расширения. Подстановочный знак можно использовать для замены любого другого символа или символов в строке. Используя маски и подстановочные знаки, вы можете легко указать, какие файлы и/или папки следует обрабатывать, а какие следует игнорировать.
Маски файлов могут состоять из любой комбинации следующего:
Фиксированные символы — буквы, цифры и другие символы, разрешенные в именах файлов.
Вопросительный знак (?) – обозначает любой отдельный символ.
Звездочка (*) — обозначает любую последовательность символов (включая отсутствие символов).
Хотя четко определено, что маска файла, содержащая только фиксированные символы, однозначно идентифицирует файл (например, маска файла myFile.txt относится только к текстовому файлу с именем myFile.txt ), маска файла, содержащая символы подстановки? и/или * может относиться к одному или нескольким файлам.
Несколько файлов маски
В большинстве случаев можно указать несколько файлов или объединить несколько масок подстановочных знаков, разделив каждую вертикальной чертой (|). Например, следующая маска включает все изображения JPG и GIF, содержащиеся в c:\temp\:
Подстановочные знаки позволяют маске файла соответствовать нескольким именам папок или файлов. В таблице ниже приведены различные примеры масок файлов.
Соответствует всем файлам, содержащим любое количество символов, с расширениями или без них (например, ввод A* соответствует любому файлу или папке, начинающейся с буквы A, за которой следует любое количество символов).
Соответствует всем файлам, содержащим любое количество символов и с любым расширением. Соответствует даже файлам без расширения (например, ввод A*.* соответствует любому файлу, начинающемуся с буквы A, за которой следует любое количество символов вместе с любым расширением).
Соответствует любому одиночному символу (например, ввод A? соответствует любому файлу, начинающемуся с буквы A, за которой следует любой одиночный символ).
Соответствует всем файлам, имена которых содержат любое количество символов с расширением .jpg (например, image_name.jpg, cool_pic.jpg, 1.jpg).
Соответствует всем файлам, имена которых содержат любое количество символов с расширением, начинающимся с буквы p (например, document.pdf, image_name.jpg, business.project, 1.ppt )
Соответствует всем файлам, имена которых начинаются с pic (например, picture_name.jpg, pictogram.ico, picker.html, pic ).
Соответствует всем файлам .html с именами, начинающимися с любой последовательности символов, за которыми следует строка mat и заканчивающаяся одним символом (например,automate.html, mate.html, tomato.html).
Соответствует всем файлам с именами, содержащими шесть символов и без расширения (например, 123456, myFile, my_pic, images)
Соответствует всем файлам .pdf, имена которых начинаются с doc, за которым следуют любые пять символов (например, document.pdf, доктрина.pdf, doc_1234.pdf).
Соответствует определенным именам файлов или маскам подстановочных знаков, которые находятся в том же каталоге (например, c:\temp\file1.txt|file2.jpg|file3.jpg).
Соответствует определенным именам файлов или маскам с подстановочными знаками, которые находятся в разных каталогах (например, c:\photos\*.jpg|\c:\music\*.mp3).
(Если указатель и содержание скрыты, щелкните значок в левом верхнем углу.)
Читайте также: