Найдите путь% LocalAppData% и добавьте новую папку с помощью JavaScript - PullRequest
2 голосов
/ 12 августа 2010

Я создал гаджет Windows 7, и мне нужно создать место на компьютере каждого пользователя для хранения файла Settings.ini (созданного из моего файла SettingsManager.js).Команда по упаковке приложений в моей компании рекомендует использовать

% LOCALAPPDATA% \ Microsoft \ Windows Sidebar \

, а затем добавить

Гаджеты \ iMon.Gadget \

вложенные папки.Это так, что настройки каждого пользователя хранятся в уникальном месте и не будут изменены никакими другими приложениями или гаджетами.

Нужно ли использовать что-то вроде

var fso = new ActiveXObject("Scripting.FileSystemObject");
var folder = fso.CreateFolder("path");

Буду признателен за любую помощь в том, как это сделать.

Обновление: я нашел, как получить% localappdata% path, но мне все еще нужно создать новую папку.Вот что я попробовал без успеха:

var wshshell = new ActiveXObject("wscript.shell");
var localAppData = wshshell.ExpandEnvironmentStrings("%localappdata%");
var filePath = localAppData + "\\Microsoft\\Windows Sidebar\\Gadgets\\iMon.Gadget";
var fso = new ActiveXObject("Scripting.FileSystemObject");
var filePath = localAppData + "\\Microsoft\\Windows Sidebar\\Gadgets\\iMon.Gadget";

1 Ответ

3 голосов
/ 21 августа 2010

Я не уверен, что понимаю, что вы пытаетесь сделать здесь. iMon.Gadget - это название вашего гаджета? Если это так, эта папка создается автоматически после установки гаджета при выполнении архива .gadget. Все файлы и папки гаджета будут распакованы на

%LOCALAPPDATA\Microsoft\Windows Sidebar\Gadgets\iMon.gadget\

В своем коде вы можете приступить к манипулированию файлами в этой папке (и ее подпапках). Чтобы получить полный путь, вы используете

var gadgetPath = System.Gadget.path;

Например:

var oFile,
    gadgetPath = System.Gadget.path,
    oFSO = ActiveXObject("Scripting.FileSystemObject");

oFile = oFSO.CreateTextFile(gadgetPath + "\\test.txt", true);
oFile.WriteLine("Test.");
oFile.Close();
...