2011-01-09 2 views
1

Я хотел бы написать в каталог C: \ windows \ temp (или его настроенный эквивалент) внутри моего Firefox-аддона.Каталог «Temp» в Windows, IO.getFile

https://developer.mozilla.org/en/FileGuide/FileWriting

дает впечатление, что существует система независимых имен для этих путей:

var file = IO.getFile("Desktop", "myinfo.txt"); 
var stream = IO.newOutputStream(file, "text"); 
stream.writeString("This is some text"); 
stream.close(); 

Но я не могу найти никаких ссылок в указанных ссылках, что такое «Desktop» указывает на , Поэтому я не знаю, что именно упоминается в именах, указанных в документации.

Как я могу использовать IO.getFile(), чтобы открыть файл в глобальной папке temp Windows?

ответ

2

Смотрите также Code snippets: File I/O на developer.mozilla.org. Он отвечает на ваш вопрос (Мэтью прав, это «TmpD») и предоставляет множество других примеров, связанных с файлами.

[править] О, и IO действительно работает для вас? Я думал, что это unavailable. [edit2] Я добавил предупреждение в верхней части страниц, которые я мог найти, которые упоминают об этом.

+0

что бы вы вместо этого использовали? –

+0

@ Justin Alexander: Я только что связался с , у него есть рабочий код. Если вы запрашиваете обертки, у меня нет предпочтительного. Я пытаюсь имитировать все, что делает код Firefox - если они придумают стандартную оболочку, я бы ее использовал. – Nickolay

1

Ключи описаны here.

Я считаю, что вы хотите TmpD, которая указана here

1
// Writing stackoverflow.txt to TEMP dir 
const { OS } = Cu.import("resource://gre/modules/osfile.jsm", {}) 
const path = OS.Path.join(OS.Constants.Path.tmpDir, "stackoverflow.txt") 
OS.File.writeAtomic(path, "Hello, StackOverflow!", { 
    encoding: "utf-8", 
    tmpPath: "stackoverflow.txt.tmp", // it's not necessary but I'd recommend to use it 
}).then(() => console.log(path, "has been written")) 
// C:\Users\traxium\AppData\Local\Temp\stackoverflow.txt has been written 

// Reading stackoverflow.txt from TEMP dir 
const { OS } = Cu.import("resource://gre/modules/osfile.jsm", {}) 
const path = OS.Path.join(OS.Constants.Path.tmpDir, "stackoverflow.txt") 
OS.File.read(path, { encoding: "utf-8" }).then(txt => console.log(txt)) 
// "Hello, StackOverflow!" 
Смежные вопросы