js操作文件(ie可用)

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>js操作文件(ie可用)</title>
        <script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
    
    <script language="JavaScript">
        var fileDir='';
        $(document).ready(function(){
            fileDir=getFileDir();
            $('#fileDir').html(fileDir);
            readInfo();
        });

        /**获取当前文件位置**/
        function getFileDir(){
            var curRequestPath = window.document.location.href;
            var decode=decodeURI(curRequestPath);
            var dir=decode.substring('file:///'.length,decode.lastIndexOf("/")+1);
            return dir;
        }

        /**读取文件**/
        function readInfo(){
            var fileName=fileDir+$('#fileName').val();
            if(fileName==""){
                alert('文件名称不能为空');
                return;
            }else{
                var fso,f,ts,s;
                var ForRWA=0,ForReading=1,ForWriting=2,ForAppending=8;
                var TristateUseDefault=-2,TristateTrue=-1,TristateFalse=0;
                fso=new ActiveXObject("Scripting.FileSystemObject");
                f=fso.GetFile(fileName);
                ts=f.OpenAsTextStream(ForReading,TristateUseDefault);
                try{
                    s=ts.ReadAll();
                }catch(e){}
                ts.Close();
                $('#showArea').val(s);
                $('#editArea').val(s);
                alert('操作成功');
            }
        }

        /**写入文件**/
        function writeInfo(){
            var fileName=fileDir+$('#fileName').val();
            if(fileName==""){
                alert('文件名称不能为空');
                return;
            }else{
                var content=$('#editArea').val();
                if(content==""){
                    alert('写入内容不能为空');
                }
                
                var ForRWA=0,ForReading=1,ForWriting=2;
                var TristateUseDefault=-2,TristateTrue=-1,TristateFalse=0;
                fso=new ActiveXObject("Scripting.FileSystemObject");
                f=fso.GetFile(fileName);
                ForRWA=ForWriting;
                ts=f.OpenAsTextStream(ForRWA,TristateUseDefault);
                ts.Write(content);
                ts.Close();
                $('#showArea').val(content);
                alert('操作成功');
            }
        }

        /**创建文件**/
        function createInfo(){
            var content=$('#createArea').val();
            if(content==""){
                alert('写入内容不能为空');
                return;
            }
            var date = new Date();
            var year=date .getFullYear(); //获取完整的年份(4位)
            var month=date .getMonth()+1; //获取当前月份(0-11,0代表1月)
            var date=date.getDate(); //获取当前日(1-31)
            var fileName=fileDir+'workData_'+year+'-'+month+'-'+date+'.json';
            var fso, tf;  
            fso = new ActiveXObject("Scripting.FileSystemObject");
            if(fso.FileExists(fileName)){
                alert('文件已存在');
                return;
            }

            // 创建新文件  
            tf = fso.CreateTextFile(fileName, true);
            tf.Write(content);
            // 关闭文件  
            tf.Close();
            alert('操作成功');
        }
    </script>
    </head>
    <body>
        <table width="100%" border="1">
            <tr>
                <td colspan="3">
                    
                        <p>文件路径:<span id="fileDir"></span></p>    
                        <p>文件名称:<input name="text1" id="fileName" value="workData.json" size="40"></p>
                    
                </td>
            </tr>
            <tr>
                <td width="30%">
                        <textarea id="showArea" name="showArea" cols="20" rows="10" style="width:98%"></textarea>
                </td>
                <td>
                        <textarea id="editArea" name="editArea" cols="20" rows="10" style="width:98%"></textarea>
                </td>
                <td>
                        <textarea id="createArea" name="createArea" cols="20" rows="10" style="width:98%"></textarea>
                </td>
            </tr>
            <tr>
                <td>
                        <input type="button" value="读取" onclick="readInfo()">
                </td>
                <td>
                        <input type="button" value="写入" onclick="writeInfo()">
                </td>
                <td>
                        <input type="button" value="创建" onclick="createInfo()">
                </td>
            </tr>
        </table>
    </body>
 
</html>

 

posted @ 2020-09-21 17:20  迢迢  阅读(256)  评论(0编辑  收藏  举报