MD с дополнительной возможностью создания дерева подкаталогов
Автор: radionova1996 • Апрель 22, 2018 • Контрольная работа • 794 Слов (4 Страниц) • 623 Просмотры
Задание
MD с дополнительной возможностью создания дерева подкаталогов в соответствии с указываемым в качестве параметра текстовым файлом, в котором наименование каждого нового подкаталога начинается с новой строки, а каждый подуровень указан дополнительным символом пробела перед наименованием.
Анализ задачи
Задача состоит из двух частей:
- Создание папки по определенному пути
- Чтение файла, в котором содержится схема папок, которую необходимо создать.
Создание папки
Для создания папки используем функционал обьекта FileSysteObject, который умеет проверять, создана ли папка и создавать ее.
Так как эта функция не умеет создавать папки рекурсивно, разобьем входной путь на части и будем из них постепенно создавать путь.
[pic 1]
Создание дерева
В данном режиме мы открываем файл и читаем его по строкам.
Заводим список папок.
Если пробелов в начале строки больше, чем элементов в списке, то добавляем текущий элемент туда.
Если меньше – удаляем лишние и добавляем текущий.
Потом создаем полученную папку.
[pic 2]
Результат работы
[pic 3]
[pic 4]
Дерево
Исходный файл
[pic 5]
[pic 6]
Исходный код
function pomosh()
{
WScript.Echo( "Параметры: " );
WScript.Echo( " cscript mymd.js путь" );
WScript.Echo( " cscript mymd.js -f файл_со_списком" );
// Завершаемся
WScript.Quit();
}
if (WScript.Arguments.length < 1)
pomosh();
if ( (WScript.Arguments(0) == "-h") | (WScript.Arguments(0) == "-?") )
pomosh ();
fs = new ActiveXObject("Scripting.FileSystemObject");
function CreateFolderRecursive(FullPath)
{
WScript.Echo( "Создаем " + FullPath );
var arr = FullPath.split("\\");
var path = "";
for(i in arr)
{
if (path != "")
path = path + "\\";
path = path + arr[i];
// WScript.Echo( " :" + path );
if (!fs.FolderExists(path))
...