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

Tiburtsy

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

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
23 286
Оценка реакций
8 090
getFiles() перебирает все файлы включая подкаталоги
 

Tiburtsy

Топикстартер
10 лет на форуме
Сообщения
39
Оценка реакций
14
я знаю что делает getFiles(), не первый год пишу скрипты.
Могу получить getFiles("*.jpg"), но не могу получить getFiles("*."), по аналогии. Не хочется рыться в выдаче циклами и условиями и вычленять файлы без расширений. Хотелось бы более элегантное решение чтобы получить их сразу.
 

kstati

иɯɐɯɔʞ
Сообщения
890
Оценка реакций
436
я знаю что делает getFiles(), не первый год пишу скрипты.
Могу получить getFiles("*.jpg"), но не могу получить getFiles("*."), по аналогии. Не хочется рыться в выдаче циклами и условиями и вычленять файлы без расширений. Хотелось бы более элегантное решение чтобы получить их сразу.
Что такое расширение? Это то, что идет после точки.
Строго говоря, имя файла без расширения не содержит точек.

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

Oleg Butrin

15 лет на форуме
Сообщения
1 543
Оценка реакций
833
Хотя я не уверен до конца, что 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);
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
23 286
Оценка реакций
8 090
Бутрин двоечник
 

Tiburtsy

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

Tiburtsy

Топикстартер
10 лет на форуме
Сообщения
39
Оценка реакций
14
Чисто академический интерес: как ключ глобального поиска g влияет на эту конструкцию (/^[^\.]+$/g)
У меня перестаёт находить одну папку и один файл из 5 объектов без расширений. Не могу понять почему.
 

kstati

иɯɐɯɔʞ
Сообщения
890
Оценка реакций
436
Чисто академический интерес: как ключ глобального поиска g влияет на эту конструкцию (/^[^\.]+$/g)
У меня перестаёт находить одну папку и один файл из 5 объектов без расширений. Не могу понять почему.
Какие имена он перестаёт находить. Крайне интересно. Регулярка-то простая - "От начала до конца НЕ точка"
 

Tiburtsy

Топикстартер
10 лет на форуме
Сообщения
39
Оценка реакций
14
[1] - папка
[w] - папка
g
qqqqqqqqqqq
про
Перестаёт видеть [w] и файл g
 

люди_будущего

Участник
Сообщения
23
Оценка реакций
25
Файлы/папки просто находятся через одного, вот так. Есть что-то зловещее в языке, в котором lastIndex реализован как свойство регулярного выражения, а не строки, но, как сказал бы товарищ Сталин: "Другого javascript у меня для вас нет."
 

kstati

иɯɐɯɔʞ
Сообщения
890
Оценка реакций
436
Файлы/папки просто находятся через одного, вот так. Есть что-то зловещее в языке, в котором lastIndex реализован как свойство регулярного выражения, а не строки, но, как сказал бы товарищ Сталин: "Другого javascript у меня для вас нет."
Ты плохо читаешь. С глобальным модификатором у ТС есть пропуски.
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
23 286
Оценка реакций
8 090