Добрый день!

Возникла необходимость массовой загрузки файлов.
У нас есть раздел "Проекты", по которым приходят заявки на соответствующую деталь. В каждую заявку крепится скан-копия документа.
Хочется реализовать следующую схему загрузки: пользователь выбирает папку, имя у которой равно названию какого-нибудь проекта. Внутри папки лежат сканы документов, имена файлов соответствуют номерам заявок.
Реализация схемы в общих чертах понятна, есть только вопросы по инструментарию. Для выбора папки есть функция System.SelectDirectory. Есть ли возможность пробежаться по "внутренностям" папки, то есть перебрать файлы по именам, которые в ней лежат?

Да, чуть не забыл, пользуемся Terrasoft CRM 3.3.0.49.

Заранее спасибо!

Нравится

2 комментария

Здравствуйте, Николай!
для работы с файлами-папками используется обьект 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

Ольга,
спасибо большое за ответ! Пойду пробовать.

Показать все комментарии