分享

c#文件操作

 ylw527 2011-01-26
2009-12-07

c#文件操作

C#代码 复制代码
  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.     }  



C#代码 复制代码
  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. }  


C#代码 复制代码
  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. }  



C#代码 复制代码
  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. }  



C#代码 复制代码
  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. }  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约