Добрый день!
Возникла необходимость массовой загрузки файлов.
У нас есть раздел "Проекты", по которым приходят заявки на соответствующую деталь. В каждую заявку крепится скан-копия документа.
Хочется реализовать следующую схему загрузки: пользователь выбирает папку, имя у которой равно названию какого-нибудь проекта. Внутри папки лежат сканы документов, имена файлов соответствуют номерам заявок.
Реализация схемы в общих чертах понятна, есть только вопросы по инструментарию. Для выбора папки есть функция System.SelectDirectory. Есть ли возможность пробежаться по "внутренностям" папки, то есть перебрать файлы по именам, которые в ней лежат?
Да, чуть не забыл, пользуемся Terrasoft CRM 3.3.0.49.
Заранее спасибо!
Нравится
Здравствуйте, Николай!
для работы с файлами-папками используется обьект FSO
его методы-свойства можно найти в гугле (например, тут)
ориентировочный код:
//... var FSO = GetFileSystemObject() var _folder = FSO.GetFolder(FolderName); LoadMaps(_folder) //..
функции рекурсивные:
///////////////////////////////////////////////////////////////////// // Обход по папкам ///////////////////////////////////////////////////////////////////// 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(); //обработка файла } } }
+подключите скрипт scr_FileUtils