Добрый день!
Возникла необходимость массовой загрузки файлов.
У нас есть раздел "Проекты", по которым приходят заявки на соответствующую деталь. В каждую заявку крепится скан-копия документа.
Хочется реализовать следующую схему загрузки: пользователь выбирает папку, имя у которой равно названию какого-нибудь проекта. Внутри папки лежат сканы документов, имена файлов соответствуют номерам заявок.
Реализация схемы в общих чертах понятна, есть только вопросы по инструментарию. Для выбора папки есть функция System.SelectDirectory. Есть ли возможность пробежаться по "внутренностям" папки, то есть перебрать файлы по именам, которые в ней лежат?
Да, чуть не забыл, пользуемся Terrasoft CRM 3.3.0.49.
Заранее спасибо!
Нравится
Здравствуйте, Николай!
для работы с файлами-папками используется обьект FSO
его методы-свойства можно найти в гугле (например, тут)
ориентировочный код:
[javascript]
//...
var FSO = GetFileSystemObject()
var _folder = FSO.GetFolder(FolderName);
LoadMaps(_folder)
//..
[/javascript]
функции рекурсивные:
[javascript]
/////////////////////////////////////////////////////////////////////
// Обход по папкам
/////////////////////////////////////////////////////////////////////
function LoadMaps(_folder) { //debugger;
//Log.Write(0, 'folder: ' + _folder.Path);
LoadMapsFromFolder(_folder);//обработка файлов в папке
var more_folders = new Enumerator(_folder.SubFolders);
for (;!more_folders.atEnd();more_folders.moveNext()){ //обход по подпапкам
OneFolder = more_folders.item();
LoadMaps(OneFolder);
}
}
/////////////////////////////////////////////////////////////////////
// Обход по файлам
/////////////////////////////////////////////////////////////////////
function LoadMapsFromFolder(_folder) {
var FolderPath = _folder.Path
var more_files = new Enumerator(_folder.Files);
for (;!more_files.atEnd();more_files.moveNext()){
var one_file = more_files.item();
//обработка файла
}
}
}
[/javascript]
+подключите скрипт scr_FileUtils