ES6 предоставляет метод Array.from()
, который создает новый экземпляр Array из объекта, подобного массиву или итерации.
let boxes = document.getElementsByClassName('box');
Array.from(boxes).forEach(v => v.style.background = 'green');
console.log(Array.from(boxes));
.box {
width: 50px;
height: 50px;
margin: 5px;
background: blue;
display: inline-block;
}
Как вы можете видеть внутри фрагмента кода, после использования функции Array.from()
вы можете манипулировать каждым элементом.
Это же решение с использованием jQuery
.
$('.box').css({'background':'green'});
.box {
width: 50px;
height: 50px;
margin: 5px;
background: blue;
display: inline-block;
}
Действительно ли вы на самом деле должны записываться в папку данных Program для каждой системы вместо папок (ов) данных для каждого пользователя?
Возможно, вы захотите взять посмотрите Environment.GetFolderPath
и следующие Environment.SpecialFolder
s:
Environment.SpecialFolder.ApplicationData
- папка данных для данных приложения, синхронизированная с доменом контроллер, если профиль пользователя находится в роуминге Environment.SpecialFolder.LocalApplicationData
- папка данных для данных приложения, локальная и не синхронизированная (полезно для, например, кешей) EDIT:
Протестировано в Windows 7 x64, пользователь без администратора.
var appData = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
var myFolder = Path.Combine(appData, "MyApp");
if(!Directory.Exists(myFolder)) Directory.CreateDirectory(myFolder);
File.WriteAllText(Path.Combine(myFolder, "Test.txt"), "Test.");
Это делает то, что ожидается, т.е. записывается в C:\ProgramData\MyApp\Test.txt
. Насколько я могу судить («Командная строка режима администратора»), нет никакой виртуализации UAC.
Двойное редактирование:
Я предполагаю, что произошло то, что в какой-то момент пользователь Administrator записал файлы в вашу папку ProgramData, и, как таковая, виртуализация файловой системы UAC запускается и перенаправляется не-администратор записывает в VirtualStore
.
Выполняется ли ваш деинсталлятор как администратор? Если это так, вам может потребоваться проверить путь VirtualStore
для пользователя, который инициирует удаление, и фактический путь к файловой системе для удаления данных программы. Я не уверен, есть ли официальный способ сделать это, хотя ...
Я нашел причину ошибки.
приложение пытается взять на себя ответственность за файл, а затем создается другой файл.
Я удалил эту строку и теперь все отлично работает.