您的位置:首页 > 编程语言 > ASP

ASP.NET中常用功能代码总结——文件操作篇

2007-08-04 09:25 591 查看
一.读取文本文件
 1



/**//// <summary>
 2

/// 读取文本文件
 3

/// </summary>
 4

private void ReadFromTxtFile()
 5





{
 6

    if(filePath.PostedFile.FileName != "")
 7



    

{
 8

        txtFilePath =filePath.PostedFile.FileName;
 9

        fileExtName = txtFilePath.Substring(txtFilePath.LastIndexOf(".")+1,3);
10


11

        if(fileExtName !="txt" && fileExtName != "TXT")
12



        

{
13

            Response.Write("请选择文本文件");
14

        }
15

        else
16



        

{
17

            StreamReader fileStream = new StreamReader(txtFilePath,Encoding.Default);
18

            txtContent.Text = fileStream.ReadToEnd();
19

            fileStream.Close();
20

        }
21

    }
22

}
 
二.获取文件列表
  1



/**//// <summary>
  2

/// 获取文件列表
  3

/// </summary>
  4

private void GetFileList()
  5





{
  6

    string strCurDir,FileName,FileExt;
  7

    
  8



    /**////文件大小
  9

    long FileSize;
 10

    
 11



    /**////最后修改时间;
 12

    DateTime FileModify;
 13


 14



    /**////初始化
 15

    if(!IsPostBack)
 16



    

{
 17



        /**////初始化时,默认为当前页面所在的目录
 18

        strCurDir = Server.MapPath(".");
 19

        lblCurDir.Text = strCurDir;
 20

        txtCurDir.Text = strCurDir;
 21

    }
 22

    else
 23



    

{
 24

        strCurDir = txtCurDir.Text;
 25

        txtCurDir.Text = strCurDir;
 26

        lblCurDir.Text = strCurDir;
 27

    }
 28

    FileInfo fi;
 29

    DirectoryInfo dir;
 30

    TableCell td;
 31

    TableRow tr;
 32

    tr = new TableRow();
 33

    
 34



    /**////动态添加单元格内容
 35

    td = new TableCell();
 36

    td.Controls.Add(new LiteralControl("文件名"));
 37

    tr.Cells.Add(td);
 38

    td = new TableCell();
 39

    td.Controls.Add(new LiteralControl("文件类型"));
 40

    tr.Cells.Add(td);
 41

    td = new TableCell();
 42

    td.Controls.Add(new LiteralControl("文件大小"));
 43

    tr.Cells.Add(td);
 44

    td = new TableCell();
 45

    td.Controls.Add(new LiteralControl("最后修改时间"));
 46

    tr.Cells.Add(td);
 47


 48

    tableDirInfo.Rows.Add(tr);
 49

    
 50



    /**////针对当前目录建立目录引用对象
 51

    DirectoryInfo dirInfo = new DirectoryInfo(txtCurDir.Text);
 52

    
 53



    /**////循环判断当前目录下的文件和目录
 54

    foreach(FileSystemInfo fsi in dirInfo.GetFileSystemInfos())
 55



    

{
 56

        FileName = "";
 57

        FileExt = "";
 58

        FileSize = 0;
 59

        
 60



        /**////如果是文件
 61

        if(fsi is FileInfo)
 62



        

{
 63

            fi = (FileInfo)fsi;
 64

            
 65



            /**////取得文件名
 66

            FileName = fi.Name;
 67

            
 68



            /**////取得文件的扩展名
 69

            FileExt = fi.Extension;
 70

            
 71



            /**////取得文件的大小
 72

            FileSize = fi.Length;
 73

            
 74



            /**////取得文件的最后修改时间
 75

            FileModify = fi.LastWriteTime;
 76

        }
 77


 78



        /**////否则是目录
 79

        else
 80



        

{
 81

            dir = (DirectoryInfo)fsi;
 82

            
 83



            /**////取得目录名
 84

            FileName = dir.Name;
 85

            
 86



            /**////取得目录的最后修改时间
 87

            FileModify = dir.LastWriteTime;
 88

            
 89



            /**////设置文件的扩展名为"文件夹"
 90

            FileExt = "文件夹";
 91

        }
 92

        
 93



        /**////动态添加表格内容
 94

        tr = new TableRow();
 95

        td = new TableCell();
 96

        td.Controls.Add(new LiteralControl(FileName));
 97

        tr.Cells.Add(td);
 98

        td = new TableCell();
 99

        td.Controls.Add(new LiteralControl(FileExt));
100

        tr.Cells.Add(td);
101

        td = new TableCell();
102

        td.Controls.Add(new LiteralControl(FileSize.ToString()+"字节"));
103

        tr.Cells.Add(td);
104

        td = new TableCell();
105

        td.Controls.Add(new LiteralControl(FileModify.ToString("yyyy-mm-dd hh:mm:ss")));
106

        tr.Cells.Add(td);
107

        tableDirInfo.Rows.Add(tr);
108

    }
109

}
 
三.读取日志文件
 1



/**//// <summary>
 2

/// 读取日志文件
 3

/// </summary>
 4

private void ReadLogFile()
 5





{
 6



    /**////从指定的目录以打开或者创建的形式读取日志文件
 7

    FileStream fs  = new FileStream(Server.MapPath("upedFile")+"//logfile.txt", FileMode.OpenOrCreate, FileAccess.Read);
 8


 9



    /**////定义输出字符串
10

    StringBuilder output = new StringBuilder();
11

    
12



    /**////初始化该字符串的长度为0
13

    output.Length = 0;
14

    
15



    /**////为上面创建的文件流创建读取数据流
16

    StreamReader read = new StreamReader(fs);
17

    
18



    /**////设置当前流的起始位置为文件流的起始点
19

    read.BaseStream.Seek(0, SeekOrigin.Begin);
20

    
21



    /**////读取文件
22

    while (read.Peek() > -1) 
23



    

{
24



        /**////取文件的一行内容并换行
25

        output.Append(read.ReadLine() + "/n");
26

    }
27

    
28



    /**////关闭释放读数据流
29

    read.Close();
30

    
31



    /**////返回读到的日志文件内容
32

    return output.ToString();
33

}
 
四.写入日志文件
 1



/**//// <summary>
 2

/// 写入日志文件
 3

/// </summary>
 4

/// <param name="input"></param>
 5

private void WriteLogFile(string input)
 6





{    
 7



    /**////指定日志文件的目录
 8

    string fname = Server.MapPath("upedFile") + "//logfile.txt";
 9



    /**////定义文件信息对象
10

    FileInfo finfo = new FileInfo(fname);
11


12



    /**////判断文件是否存在以及是否大于2K
13

    if ( finfo.Exists && finfo.Length > 2048 )
14



    

{
15



        /**////删除该文件
16

        finfo.Delete();
17

    }
18



    /**////创建只写文件流
19

    using(FileStream fs = finfo.OpenWrite())
20



    

{
21



        /**////根据上面创建的文件流创建写数据流
22

        StreamWriter w = new StreamWriter(fs);
23

        
24



        /**////设置写数据流的起始位置为文件流的末尾
25

        w.BaseStream.Seek(0, SeekOrigin.End);
26

        
27



        /**////写入“Log Entry : ”
28

        w.Write("/nLog Entry : ");
29

        
30



        /**////写入当前系统时间并换行
31

        w.Write("{0} {1} /r/n", DateTime.Now.ToLongTimeString(),
32

            DateTime.Now.ToLongDateString());
33

        
34



        /**////写入日志内容并换行
35

        w.Write(input + "/n");
36

        
37



        /**////写入------------------------------------“并换行
38

        w.Write("------------------------------------/n");
39

        
40



        /**////清空缓冲区内容,并把缓冲区内容写入基础流
41

        w.Flush();
42

        
43



        /**////关闭写数据流
44

        w.Close();
45

    }
46

}
 
五.创建HTML文件
 1



/**//// <summary>
 2

/// 创建HTML文件
 3

/// </summary>
 4

private void CreateHtmlFile()
 5





{    
 6



    /**////定义和html标记数目一致的数组
 7

    string[] newContent = new string[5];
 8

    StringBuilder strhtml = new StringBuilder();
 9

    try 
10



    

{
11



        /**////创建StreamReader对象
12

        using (StreamReader sr = new StreamReader(Server.MapPath("createHTML") + "//template.html")) 
13



        

{
14

            String oneline;
15

            
16



            /**////读取指定的HTML文件模板
17

            while ((oneline = sr.ReadLine()) != null) 
18



            

{
19

                strhtml.Append(oneline);
20

            }
21

            sr.Close();
22

        }
23

    }
24

    catch(Exception err)
25



    

{
26



        /**////输出异常信息
27

        Response.Write(err.ToString());
28

    }
29



    /**////为标记数组赋值
30

    newContent[0] = txtTitle.Text;//标题
31

    newContent[1] = "BackColor='#cccfff'";//背景色
32

    newContent[2] = "#ff0000";//字体颜色
33

    newContent[3] = "100px";//字体大小
34

    newContent[4] = txtContent.Text;//主要内容
35


36



    /**////根据上面新的内容生成html文件
37

    try
38



    

{
39



        /**////指定要生成的HTML文件
40

        string fname = Server.MapPath("createHTML") +"//" + DateTime.Now.ToString("yyyymmddhhmmss") + ".html";
41

        
42



        /**////替换html模版文件里的标记为新的内容
43

        for(int i=0;i < 5;i++)
44



        

{
45

            strhtml.Replace("$htmlkey["+i+"]",newContent[i]);
46

        }
47



        /**////创建文件信息对象
48

        FileInfo finfo = new FileInfo(fname);
49

        
50



        /**////以打开或者写入的形式创建文件流
51

        using(FileStream fs = finfo.OpenWrite())
52



        

{
53



            /**////根据上面创建的文件流创建写数据流
54

            StreamWriter sw = new StreamWriter(fs,System.Text.Encoding.GetEncoding("GB2312"));
55

            
56



            /**////把新的内容写到创建的HTML页面中
57

            sw.WriteLine(strhtml);
58

            sw.Flush();
59

            sw.Close();
60

        }
61

        
62



        /**////设置超级链接的属性
63

        hyCreateFile.Text = DateTime.Now.ToString("yyyymmddhhmmss")+".html";
64

        hyCreateFile.NavigateUrl = "createHTML/"+DateTime.Now.ToString("yyyymmddhhmmss")+".html";
65

    }
66

    catch(Exception err)
67



    


68

        Response.Write (err.ToString());
69

    }
70

}
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息