Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Удаление файлов из директории в цикле (https://javascript.ru/forum/dom-window/85561-udalenie-fajjlov-iz-direktorii-v-cikle.html)

sashgera 22.10.2023 18:05

Удаление файлов из директории в цикле
 
Здравствуйте
Есть функция, в которой в цикле выполняется какое-то действие. Мне нужно добавить в цикл еще одно действие - удаление группы файлов. Сделал так, все выполняется, проблем нет:
function resetIco(){
	var index = 0;
	for (var i = 0; i < iItemTbl.rows.length; i++){
		id = "r"+i+"c0";
		if ($(id).checked){ //если установлен чекбокс
			index++;
			path_reset = iconList[i]; //путь к файлу (в iconList хранятся пути к файлам) 
			iconList[i] = "none";  //первое действие функции (не обращать внимание)
			if (FSO.FileExists(path_reset)){ //проверка на существование
				FSO.DeleteFile(path_reset, true); //удалить файл (файлы)	
			}
			
		}
	}

//...
}

теперь мне нужно удалять файлы позже, из другой функции, сделал так, но удаляется только последний файл из группы файлов:
function resetIco(){
	var index = 0;
	for (var i = 0; i < iItemTbl.rows.length; i++){
		id = "r"+i+"c0";
		if ($(id).checked){ //если установлен чекбокс
			index++;
			path_reset = iconList[i]; //путь к файлам
			iconList[i] = "none";
			xxx = function (){
				if (FSO.FileExists(path_reset)){ //проверка на существование
					FSO.DeleteFile(path_reset, true); //удалить файл (файлы)
				}
			}	
		}
	}
}

function del(){
xxx();	
}

пожалуйста, помогите

voraa 22.10.2023 18:29

Так у вас только одна функция, которая удаляет один файл.
Нет же функции, которая удаляет группу файлов.
Если надо удалять несколько файлов, то все они должны быть заданы, как массив, например

sashgera 22.10.2023 18:41

Цитата:

Сообщение от voraa
Так у вас только одна функция, которая удаляет один файл.

voraa, вы какую имеете ввиду функцию resetIco() или del()?
например, эта функция удаляет группу файлов:
function resetIco(){
	var index = 0;
	for (var i = 0; i < iItemTbl.rows.length; i++){
		id = "r"+i+"c0";
		if ($(id).checked){ //если установлен чекбокс
			index++;
			path_reset = iconList[i]; //путь к файлу (в iconList хранятся пути к файлам) 
			iconList[i] = "none";  //первое действие функции (не обращать внимание)
			if (FSO.FileExists(path_reset)){ //проверка на существование
				FSO.DeleteFile(path_reset, true); //удалить файл (файлы)	
			}
			
		}
	}

//...
}


ну а в остальном, как я уже писал выше, прошу помощи

voraa 22.10.2023 18:45

Цитата:

Сообщение от sashgera
вы какую имеете ввиду функцию

xxx
Она одна и удаляет только один файл

Что то типа такого
function resetIco(){
    var index = 0;
    path_reset = [];
    for (var i = 0; i < iItemTbl.rows.length; i++){
        id = "r"+i+"c0";
        if ($(id).checked){ //если установлен чекбокс
            index++;
            path_reset.push(iconList[i]); //путь к файлам
            iconList[i] = "none";
        }
    }
    xxx = function (){
		for (var i = 0; i < path_reset.length; i++) {
            if (FSO.FileExists(path_reset[i])){ //проверка на существование
                FSO.DeleteFile(path_reset[i], true); //удалить файл (файлы)
            }
        }
    }  
}
 
function del(){
xxx(); 
}

sashgera 22.10.2023 19:32

voraa, большое спасибо!!


Часовой пояс GMT +3, время: 02:54.