Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Старожил


Сообщения: 352
Благодарности: 193

Профиль | Отправить PM | Цитировать


Вариант на WSH JScript: MkFoldersRecurse.js
Скрытый текст
Код: Выделить весь код
// Папка:
var targetFolder = "d:\\xxTESTxx";
// Массив создаваемых папок:
var foldersList = [
	"0", 
	"1", 
	"2", 
	"3", 
	"4", 
	"5", 
	"6", 
	"7", 
	"8", 
	"9"
	];
// Глубина создаваемой структуры папок:
var foldersDepth = 2;

var newf = '';
var wsh = WScript.CreateObject("WScript.Shell");
var fso = new ActiveXObject("Scripting.FileSystemObject");
if (!TestWritable(targetFolder)) {
	msg("Ошибка записи в папку " + targetFolder);
	WScript.Quit(1);
}

if (wsh.Popup("Будет создано " + GetFoldersNumber(foldersList.length, foldersDepth) + " папок.\n\nПродолжить?", 0, "", 4) != 6 )
	WScript.Quit(0);
var timeStart = new Date();
CreateFolders(targetFolder, foldersList, foldersDepth);
var timeFinish = new Date();
msg((timeFinish - timeStart) + " msec.")

function msg(s){WScript.Echo(s);}

function TestWritable(parentFolder) {
	var testFolderName = parentFolder + "\\" + "testFolderName";
	try {
		fso.CreateFolder(testFolderName);
	} catch(error) {
		return false;
	}
	fso.DeleteFolder(testFolderName, true);
	return true
}

function GetFoldersNumber(n, d) {
	var sum = 0;
	for (var i = 1; i <= d ; i++)
		sum += Math.pow(n, i);
	return sum;
}

function CreateFolders(parentFolder, foldersList, foldersDepth){
	var depth = foldersDepth == undefined ? foldersList.length : foldersDepth;
	if (depth == 0)
		return;

	for (var f in foldersList) {
		newf = parentFolder + "\\" + foldersList[f]
		if (!fso.FolderExists(newf)) fso.CreateFolder(newf);
		CreateFolders(newf, foldersList, depth - 1)
	}
}


Цитата NLOLegion:
-создать 10 папок(например в диске "C" (в папке "test") с названием каждой "0","1","2","3","4","5","6","7","8","9";
-в каждой этой папке создать ещё 10 папок "0","1","2","3","4","5","6","7","8","9"
-в свою очередь в каждой новой папке ещё по 10 папок с такими же названиями
-создать до такого количества раз, чтобы в итоге можно было зайти на глубину 10 папок. Н »
Жалко компа, он же сдохнуть может от такой нагрузки

Цитата megaloman:
10 миллиардов папок - занадта! »
NTFS вроде как лимит в 4,294,967,295 (2^32-1) имеет

Последний раз редактировалось iglezz, 08-01-2020 в 16:59.


Отправлено: 16:52, 08-01-2020 | #6