对文件的操作心得

来源:互联网 发布:用php怎么写出99乘法表 编辑:程序博客网 时间:2024/05/01 13:31
对文件的操作一般需要用到流。因次实际上对文件操作的掌握也就反映了对数据流操作的熟练性。
  1. 对文件的读取: 对文件的读取用到了streamreader这个对象,用它实现了将流中的数据读出来。  StreamReader fileStream = new StreamReader(txtFilePath,Encoding.Default);
     txtContent.Text = fileStream.ReadToEnd();
     fileStream.Close();
  2. 对文件的写入:相对应的,对文件的写入用到了streamWriter 这个对象,实际上实现的功能是将数据通过数据流放入相应的文件中。                                                                                                                       StreamWriter fileWrite = new StreamWriter(txtFilePath,false,Encoding.Default);
     fileWrite.Write(Label1.Text);
     fileWrite.Close();
  3. 文件的上传:文件的上传的实现可以有两种方式,a,用htmlfile控件 b,直接用数据流来控制。其中多文件上传时的简便作发是用HttpFileCollection对象,然后再动态的将htmlfile控件加入到这个collection中,最后一起提交到后台,例如

 System.Web.HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;  

 int fileCount;
   int filecount = files.Count;
   try
   {
    for(fileCount = 0;fileCount<files.Count;fileCount++)
    {
     //定义访问客户端上传文件的对象
     System.Web.HttpPostedFile postedFile = files[fileCount];
     string fileName, fileExtension;
     //取得上传得文件名
     fileName = System.IO.Path.GetFileName(postedFile.FileName);
     if(fileName != String.Empty)
     {
      Response.Write(Server.MapPath("Uploadfile/") + fileName);
      postedFile.SaveAs(Server.MapPath("Uploadfile/") + fileName);
     }
    }
   }
   catch(System.Exception error)
   {
    }

5 、文件信息的获得 

   获取文件信息用到了 DirectoryInfo和 FileSystemInfo两个对象,通过他们可以得到文件和文件夹的相关信息,为进一步的对文件操作打下基础。代码:

 DirectoryInfo dirInfo = new DirectoryInfo("c://");
   //循环判断当前目录下的文件和目录
   foreach(FileSystemInfo fsi in dirInfo.GetFileSystemInfos())
   {
    string FileName = "";
    string FileExt = "";
    int FileSize = 0;
    string FileModify = "";
    //如果是文件
    if(fsi is FileInfo)
    {
     fi = (FileInfo)fsi;
     //取得文件名
     FileName = fi.Name;
     //取得文件的扩展名
     FileExt = fi.Extension;
     //取得文件的大小
     FileSize = fi.Length;
     //取得文件的最后修改时间
     FileModify = fi.LastWriteTime;
    }
    else//否则是目录
    {
     dir = (DirectoryInfo)fsi;
     //取得目录名
     FileName = dir.Name;
     //取得目录的最后修改时间
     FileModify = dir.LastWriteTime;
     //设置文件的扩展名为"文件夹"
     FileExt = "文件夹";
    }
    
   }

6、文件的数据流操作 ()

  a. 通过数据流读取和创建文件

 FileStream fs  = new FileStream(Server.MapPath("uploadfile")+"//logfile.txt",   FileMode.OpenOrCreate, FileAccess.Read);
   StringBuilder output = new StringBuilder();
   output.Length = 0;
   StreamReader read = new StreamReader(fs);
   read.BaseStream.Seek(0, SeekOrigin.Begin);
   while (read.Peek() > -1)
   {
    output.Append(read.ReadLine() + "/n");
   }
   read.Close();
   Response.Write( output.ToString());

7。通过数据流向文件中写入数据。

    StreamWriter w = new StreamWriter(fs);
    w.BaseStream.Seek(0, SeekOrigin.End);
    w.Write("/nLog Entry : ");
    w.Write("{0} {1} /r/n", DateTime.Now.ToLongTimeString(),DateTime.Now.ToLongDateString());
    w.Write(input + "/n");
    w.Write("------------------------------------/n");
    w.Flush();
    w.Close();