[ID CS4-CS6] getFiles и файлы без расширений

Tiburtsy

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

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
getFiles() перебирает все файлы включая подкаталоги
 

Tiburtsy

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

kstati

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

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

Oleg Butrin

20 лет на форуме
Сообщения
1 989
Реакции
1 213
Хотя я не уверен до конца, что 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_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Бутрин двоечник
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Про фильтр на папки и разговора не было
 
  • Спасибо
Реакции: Tiburtsy

Tiburtsy

Топикстартер
15 лет на форуме
Сообщения
59
Реакции
14
Итого должно сработать такое:
Код:
Folder.getFiles(/^[^\.]+$/);

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

Tiburtsy

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

kstati

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

Tiburtsy

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

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

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

kstati

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

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835