Вход

Просмотр полной версии : Удаление файлов из директории в цикле


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, вы какую имеете ввиду функцию 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
вы какую имеете ввиду функцию
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, большое спасибо!!