firefox 资料操作

firefox 文件操作

                var readFile=function(path) {
                        var content = "";
                        try{
                                var fso = new ActiveXObject("Scripting.FileSystemObject");
                                var reader = fso.openTextFile(path, 1);
                                while(!reader.AtEndofStream) {
                                        content += reader.readline();
                                        content += "\n";
                                }
                                // close the reader
                                reader.close();
                        }catch(e){
                                if(document.implementation && document.implementation.createDocument){
                                        try {
                                                netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
                                                var lf = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
                                                lf.initWithPath(path);
                                                if (lf.exists() == false) {
                                                        alert("File does not exist");
                                                }
                                                var fis = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
                                                fis.init(lf, 0x01, 00004, null);
                                                var sis = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream);
                                                sis.init(fis);
                                                var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
                                                content = converter.ConvertToUnicode(sis.read(sis.available()));
                                                converter.charset = "UTF-8";
                                                //converter.charset = "GB2312";
                                        }
                                        catch (e) {
                                                alert("Mozilla Firefox read local file error: \n" + e);
                                        }
                                }
                        }
                        return content;
                };
                var writeFile=function(arrstr,path){
                        try{
                           var fso  = new ActiveXObject("Scripting.FileSystemObject");
                           var fh = fso.CreateTextFile(path, true);
                           fh.WriteLine(arrstr);
                           fh.Close();
                        }catch(e){
                            try {
                                var pm = netscape.security.PrivilegeManager;
                                pm.enablePrivilege('UniversalXPConnect');
                            }catch(e)
                            {
                                alert("!!被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'");
                            }
                            var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);

                             if(file instanceof Components.interfaces.nsILocalFile)
                             {
                                file.initWithPath(path);
                                }else
                            {
                                alert("error");
                                return;
                            }
                            var outputStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
                            var converter = Components.classes["@mozilla.org/intl/converter-output-stream;1"].createInstance(Components.interfaces.nsIConverterOutputStream);

                            try
                            {   
                                 outputStream.init(file, 0x02 | 0x08 | 0x20, 0666, 0);
                            }catch(e){
                                alert(e);
                                alert(arrstr);
                            }
                            converter.init(outputStream, "UTF-8", 0, 0);
                           
                            try
                            {
                                converter.writeString(arrstr);
                            }catch(e){
                                alert(e);
                                alert(arrstr);
                            };
                            converter.close();
                        }
                };