Помогите пж. со строкой скрипта!

Статус
Закрыто для дальнейших ответов.

chesen

Топикстартер
15 лет на форуме
Сообщения
553
Реакции
49
Скрипт с диалогом выбора папки. Но необходимо, что бы он захватывал и вложенные папки.
Вот элемент. На CS2))
Код:
var Folder_url = ''+prefs.DefFolder;
var FolderRef = new Folder(Folder_url);
var FileArr = FolderRef.getFiles('*.jpg*');
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 229
Реакции
10 851
Одной строкой не получится.
Только рекурсивным вызовом.
 

_MBK_

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

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
PHP:
Folder.prototype.collectAllFiles = function() {
    var result = [];
    var files = this.getFiles();
    for (var counter = 0; counter < files.length; counter++) {
        if (files[counter].constructor.name == 'File') {
            result.push(files[counter]);
        } else {
            result = result.concat(files[counter].collectAllFiles());
        }
    }
    return result;
}
 
  • Спасибо
Реакции: kstati, chesen и _MBK_

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 229
Реакции
10 851
Оригинально
 

qsedftghk

фея
15 лет на форуме
Сообщения
2 032
Реакции
1 198
Да, красиво.
Пожалуй, сохраню в файлик под названием "стихи_о_вложенных папках.Oleg_Butrin".
 

chesen

Топикстартер
15 лет на форуме
Сообщения
553
Реакции
49
Да, это лирика, но в моем случае не проходит...
Как-то это реализовано у Dr. Brown's Services. Но там через чек-бокс.Черт ногу сломит.
 

chesen

Топикстартер
15 лет на форуме
Сообщения
553
Реакции
49
Не работает. ((
У меня CS2.
Или я тупой.((
 

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
Это нативный jsx, от версии не зависит.
Поскольку реализован как расширение функционала объекта Folder, работает так:
PHP:
var fldr = Folder('путь_к_папке');
var allFiles = fldr.collectAllFiles();
 

chesen

Топикстартер
15 лет на форуме
Сообщения
553
Реакции
49
А как срастить с
Код:
var Folder_url = ''+prefs.DefFolder;
var FolderRef = new Folder(Folder_url);
var FileArr = FolderRef.getFiles('*.jpg*');
?
в скрипте путь кнопкой выбирается.
 

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
Элементарно же.

PHP:
Folder.prototype.collectAllJPGFiles = function() {
    var result = [];
    //все, что кончается на ".jpg"
    var re = /\.jpg$/gim;
    var files = this.getFiles();
    for (var counter = 0; counter < files.length; counter++) {
        if (files[counter].constructor.name == 'File') {
            //проверка на расширение
            if re.test(files[counter].name.toString()) {
                result.push(files[counter]);
            }
        } else {
            result = result.concat(files[counter].collectAllFiles());
        }
    }
    return result;
}

var Folder_url = '' + prefs.DefFolder;
var FolderRef = new Folder(Folder_url);
var FileArr = FolderRef.collectAllJPGFiles();
 
  • Спасибо
Реакции: dumbm1 и chesen

splxgf

12 лет на форуме
Сообщения
7 744
Реакции
3 425
Рекурсией красиво, но стек не резиновый. На корневые папки лучше не натравливать.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 229
Реакции
10 851
Элементарно же.
Правильнее так ;)
Код:
Folder.prototype.collectAllJPGFiles = function() {
    var result = [];
    //все, что кончается на ".jpg"
    var re = /\.jpg$/gim;
    var files = this.getFiles();
    for (var counter = 0; counter < files.length; counter++) {
        if (files[counter].constructor.name == 'File') {
            //проверка на расширение
            if (re.test(files[counter].name.toString())) {
                result.push(files[counter]);
            }
        } else {
            result = result.concat(files[counter].collectAllJPGFiles());
        }
    }
    return result;
}

var Folder_url = '...';
var FolderRef = new Folder(Folder_url);
var FileArr = FolderRef.collectAllJPGFiles();
 
  • Спасибо
Реакции: dumbm1 и chesen

chesen

Топикстартер
15 лет на форуме
Сообщения
553
Реакции
49
Ребятки! Ура! Все функционирует! Всем спасибо!!!
 
Статус
Закрыто для дальнейших ответов.