0

ここでは、ファイルcmd.batが一時フォルダーに存在する場合は新しいファイルを作成しないことを確認しようとしています。そうでない場合は、一時フォルダーにcmd.batを作成します。しかし、一時フォルダのパス "%temp%\ cmd.bat"に問題があり、エラーが表示されています:

Timestamp: 10/31/2012 3:21:40 AM
Error: NS_ERROR_FILE_UNRECOGNIZED_PATH: Component returned failure code: 0x80520001                  (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsILocalFile.initWithPath]
Source File: chrome://myext/content/overlay.js
Line: 9           

私のコード:

        var chk_file = Components.classes["@mozilla.org/file/local;1"]
             .createInstance(Components.interfaces.nsILocalFile);

        chk_file.initWithPath("%temp%\cmd.bat");

        if ( chk_file.exists() == false ) {
            Components.utils.import("resource://gre/modules/FileUtils.jsm");

            var file = FileUtils.getFile("TmpD", ["cmd.bat"]);
            file.createUnique(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, FileUtils.PERMS_FILE);
        }
        else
        {
            alert("file already exists");
        }
4

1 に答える 1

1

initWithPath は完全なシステム パスのみを取ります。

これを使用して一時的に移動してから試してください

var environment = Components.classes["@mozilla.org/process/environment;1"]
                            .getService(Components.interfaces.nsIEnvironment);


var path = environment.get("TEMP");
于 2012-10-31T11:47:15.793 に答える