[ID CS5.5] getFiles и файлы без расширений

Tiburtsy

10 лет на форуме
Сообщения
33
Благодарности
13
#1
Может ли getFiles выдать файлы у которых нет расширений.
Маска ("*.") не срабатывает. Трюки с regexp наподобии (/.+[^\.]$/i) и через функцию тоже не увенчались успехом. Поиск не помог :(
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
22 167
Благодарности
7 805
#2
getFiles() перебирает все файлы включая подкаталоги
 

Tiburtsy

10 лет на форуме
Сообщения
33
Благодарности
13
#3
я знаю что делает getFiles(), не первый год пишу скрипты.
Могу получить getFiles("*.jpg"), но не могу получить getFiles("*."), по аналогии. Не хочется рыться в выдаче циклами и условиями и вычленять файлы без расширений. Хотелось бы более элегантное решение чтобы получить их сразу.
 
Сообщения
856
Благодарности
423
#4
я знаю что делает getFiles(), не первый год пишу скрипты.
Могу получить getFiles("*.jpg"), но не могу получить getFiles("*."), по аналогии. Не хочется рыться в выдаче циклами и условиями и вычленять файлы без расширений. Хотелось бы более элегантное решение чтобы получить их сразу.
Что такое расширение? Это то, что идет после точки.
Строго говоря, имя файла без расширения не содержит точек.

Итого должно сработать такое:
Код:
Folder.getFiles(/^[^\.]+$/);
Хотя я не уверен до конца, что getFiles нормально работает с регулярными выражениями
 
Последнее редактирование:
Благодарности: Понравилось Tiburtsy и _MBK_

Oleg Butrin

12 лет на форуме
Сообщения
1 493
Благодарности
795
#5
но не могу получить getFiles("*."), по аналогии
А я, например, не могу сделать файл, имя которого заканчивается на точку. Windows 10 не дает такой возможности даже в терминале.
 

Oleg Butrin

12 лет на форуме
Сообщения
1 493
Благодарности
795
#6
Хотя я не уверен до конца, что getFiles нормально работает с регулярными выражениями
Оно не так работает.
JavaScript:
function fm (file) {
    if (file.constructor.name == 'File' && file.name.match(/^[^\.]+$/gim)) {
        return true;
    }
    return false;
}

var fldr = Folder( '~/Documents/Test');
fldr.getFiles(fm);
 

Tiburtsy

10 лет на форуме
Сообщения
33
Благодарности
13
#13
Итого должно сработать такое:
Код:
Folder.getFiles(/^[^\.]+$/);
Прекрасный код, всё ищет, именно нечто подобное я и хотел! Папок у меня нет, так что всё устраивает (если что - потом отфильтрую). Предлагаю сохранить этот код для потомков. Всем спасибо за помощь!
 

Tiburtsy

10 лет на форуме
Сообщения
33
Благодарности
13
#14
Чисто академический интерес: как ключ глобального поиска g влияет на эту конструкцию (/^[^\.]+$/g)
У меня перестаёт находить одну папку и один файл из 5 объектов без расширений. Не могу понять почему.
 
Сообщения
856
Благодарности
423
#15
Чисто академический интерес: как ключ глобального поиска g влияет на эту конструкцию (/^[^\.]+$/g)
У меня перестаёт находить одну папку и один файл из 5 объектов без расширений. Не могу понять почему.
Какие имена он перестаёт находить. Крайне интересно. Регулярка-то простая - "От начала до конца НЕ точка"
 
Сообщения
11
Благодарности
11
#17
Файлы/папки просто находятся через одного, вот так. Есть что-то зловещее в языке, в котором lastIndex реализован как свойство регулярного выражения, а не строки, но, как сказал бы товарищ Сталин: "Другого javascript у меня для вас нет."
 
Благодарности: Понравилось Tiburtsy
Сообщения
856
Благодарности
423
#18
Файлы/папки просто находятся через одного, вот так. Есть что-то зловещее в языке, в котором lastIndex реализован как свойство регулярного выражения, а не строки, но, как сказал бы товарищ Сталин: "Другого javascript у меня для вас нет."
Ты плохо читаешь. С глобальным модификатором у ТС есть пропуски.
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
22 167
Благодарности
7 805
#19
Рейтинг@Mail.ru