JavaScript创建与读写本地文件(IE&Firefox)

时间:2022-08-26 14:24:29
在IE下,可以使用ActiveXObject来实现
      var fso = new ActiveXObject("Scripting.FileSystemObject"); 
var f1 = fso.CreateTextFile("test.csv", true);
f1.WriteLine("Hello");
f1.WriteBlankLines(1); //换行
f1.Close();


这里可以使用相对地址, 要想知道文件的绝对路径的话, 可以使用

      var ofile=fso.getFile("test.csv");
alert(ofile.path);


在Firefox下, ActiveXObject无法使用, 可以用以下方式实现

var path = "c:\\test.csv";
var content = "Hell0";
try {

netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("no permisson...");
}
var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(path);
if ( file.exists() == false )
{
file.create( Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 420 );
}
var outputStream = Components.classes["@mozilla.org/network/file-output-stream;1"] .createInstance( Components.interfaces.nsIFileOutputStream );
outputStream.init( file, 0x04 | 0x08 | 0x20, 420, 0 );
var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"] .createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
converter.charset = 'UTF-8'; var convSource = converter.ConvertFromUnicode(content);
var result = outputStream.write( convSource, convSource.length );
outputStream.close();
alert("File was saved in "+path);


如果弹出 no permisson... 的窗口的话就要修改firefox的config了。

修改方法: 在地址栏输入about:config   --> 找到 signed.applets.codebase_principal_support -->双击 值改为true就可以了。

此处的path指定的是绝对的地址, 如果使用相对地址, 有兴趣的可以再研究研究。