澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

文件流操作,移动文件

2019-08-31 作者:www.8455.com   |   浏览(171)

一、获取文件夹列表

本文收罗了当前特别常用的C#特出操作文件的措施,具体内容如下:C#追加、拷贝、删除、移动文件、创制目录、递归删除文件夹及文件、钦命文件夹下面包车型大巴具有内容copy到对象文件夹上边、钦点文件夹上边包车型大巴保有剧情Detele、读取文本文件、获取文件列表、读取日志文件、写入日志文件、创造HTML 文件、CreateDirectory方法的施用
C#追Gavin件
StreamWriter sw = File.AppendText(Server.MapPath(".") "\myText.txt");
sw.WriteLine("追逐理想");
sw.WriteLine("kzlll");
sw.WriteLine(".NET笔记");
sw.Flush();
sw.Close();
C#拷贝文件
string OrignFile,NewFile;
OrignFile = Server.MapPath(".") "\myText.txt";
NewFile = Server.MapPath(".") "\myTextCopy.txt";
File.Copy(OrignFile,NewFile,true);
C#去除文件
string delFile = Server.MapPath(".") "\myTextCopy.txt";
File.Delete(delFile);
C#运动文件
string OrignFile,NewFile;
OrignFile = Server.MapPath(".") "\myText.txt";
NewFile = Server.MapPath(".") "\myTextCopy.txt";
File.Move(OrignFile,NewFile);
C#始建目录
// 创立目录c:sixAge
DirectoryInfo d=Directory.CreateDirectory("c:\sixAge");
// d1指向c:sixAgesixAge1
DirectoryInfo d1=d.CreateSubdirectory("sixAge1");
// d2指向c:sixAgesixAge1sixAge1_1
DirectoryInfo d2=d1.CreateSubdirectory("sixAge1_1");
// 将当前目录设为c:sixAge
Directory.SetCurrentDirectory("c:\sixAge");
// 成立目录c:sixAgesixAge2
Directory.CreateDirectory("sixAge2");
// 创制目录c:sixAgesixAge2sixAge2_1
Directory.CreateDirectory("sixAge2\sixAge2_1");
递归删除文件夹及文件
<%@ Page Language=C#%>
<%@ Import namespace="System.IO"%>
<script_ runat=server>
public void DeleteFolder(string dir)
{
    if (Directory.Exists(dir)) //假如存在那些文件夹删除之
    {
        foreach(string d in Directory.GetFileSystemEntries(dir))
        {
            if(File.Exists(d))
                File.Delete(d); //直接删除当中的文书
            else
                DeleteFolder(d); //递归删除子文件夹
        }
        Directory.Delete(dir); //删除已空文件夹
        Response.Write(dir " 文件夹删除成功");
    }
    else
        Response.Write(dir " 该文件夹子虚乌有"); //假使文件夹不设有则提醒
}
protected void Page_Load (Object sender ,EventArgs e)
{
    string Dir="D:\gbook\11";
    DeleteFolder(Dir); //调用函数删除文件夹
}

正文搜罗了脚下最佳常用的C#经文操作文件的措施,具体内容如下:C#充实、拷贝、删除、移动文件、成立目录、递归删除文件夹及文件、钦命文件夹下边包车型地铁持有剧情copy到对象文件夹上边、钦点文件夹上面的有所剧情Detele、读取文本文件、获取文件列表、读取日志文件、写入日志文件、创造HTML 文件、CreateDirectory方法的选拔
C#充实文件 
    StreamWriter sw = File.AppendText(Server.MapPath(".") "\myText.txt"); 
    sw.WriteLine("追逐理想"); 
    sw.WriteLine("kzlll"); 
    sw.WriteLine(".NET笔记"); 
    sw.Flush(); 
    sw.Close(); 
C#拷贝文件 
    string OrignFile,NewFile; 
    OrignFile = Server.MapPath(".") "\myText.txt"; 
    NewFile = Server.MapPath(".") "\myTextCopy.txt"; 
    File.Copy(OrignFile,NewFile,true); 
C#去除文件 
    string delFile = Server.MapPath(".") "\myTextCopy.txt"; 
    File.Delete(delFile); 
C#活动文件 
    string OrignFile,NewFile; 
    OrignFile = Server.MapPath(".") "\myText.txt"; 
    NewFile = Server.MapPath(".") "\myTextCopy.txt"; 
    File.Move(OrignFile,NewFile); 
C#始建目录 
// 创制目录c:sixAge 
    DirectoryInfo d=Directory.CreateDirectory("c:\sixAge"); 
// d1指向c:sixAgesixAge1 
    DirectoryInfo d1=d.CreateSubdirectory("sixAge1"); 
// d2指向c:sixAgesixAge1sixAge1_1 
    DirectoryInfo d2=d1.CreateSubdirectory("sixAge1_1"); 
// 将当前目录设为c:sixAge 
    Directory.SetCurrentDirectory("c:\sixAge"); 
// 创立目录c:sixAgesixAge2 
文件流操作,移动文件。    Directory.CreateDirectory("sixAge2"); 
// 创立目录c:sixAgesixAge2sixAge2_1 
    Directory.CreateDirectory("sixAge2\sixAge2_1"); 
递归删除文件夹及文件 
  <%@ Page Language=C#%> 
  <%@ Import namespace="System.IO"%> 
  <script_ runat=server> 
  public void DeleteFolder(string dir) 
  { 
    if (Directory.Exists(dir)) //假若存在那一个文件夹删除之 
    { 
      foreach(string d in Directory.GetFileSystemEntries(dir)) 
      { 
        if(File.Exists(d)) 
          File.Delete(d); //间接删除个中的文件 
        else 
          DeleteFolder(d); //递归删除子文件夹 
      } 
      Directory.Delete(dir); //删除已空文件夹 
      Response.Write(dir " 文件夹删除成功"); 
    } 
    else 
      Response.Write(dir " 该公文夹空中楼阁"); //假使文件夹空中楼阁则提示 
  } 
  protected void Page_Load (Object sender ,EventArgs e) 
  { 
    string Dir="D:\gbook\11"; 
    DeleteFolder(Dir); //调用函数删除文件夹 
  }

正文收罗了现阶段最为常用的C#经文操作文件的艺术,具体内容如下:C#充实、拷贝、删除、移动文件、创造目录、递归删除文件夹及文件、钦赐文件夹上面包车型大巴具备剧情copy到目的文件夹下边、内定文件夹下边包车型大巴享有内容Detele、读取文本文件、获取文件列表、读取日志文件、写入日志文件、成立HTML 文件、CreateDirectory方法的采纳
C#充实文件 
    StreamWriter sw = File.AppendText(Server.MapPath(".") "\myText.txt"); 
    sw.WriteLine("追逐理想"); 
    sw.WriteLine("kzlll"); 
    sw.WriteLine(".NET笔记"); 
    sw.Flush(); 
    sw.Close(); 
C#拷贝文件 
    string OrignFile,NewFile; 
    OrignFile = Server.MapPath(".") "\myText.txt"; 
    NewFile = Server.MapPath(".") "\myTextCopy.txt"; 
    File.Copy(OrignFile,NewFile,true); 
C#除去文件 
    string delFile = Server.MapPath(".") "\myTextCopy.txt"; 
    File.Delete(delFile); 
C#移步文件 
    string OrignFile,NewFile; 
    OrignFile = Server.MapPath(".") "\myText.txt"; 
    NewFile = Server.MapPath(".") "\myTextCopy.txt"; 
    File.Move(OrignFile,NewFile); 
C#始建目录 
// 创设目录c:sixAge 
    DirectoryInfo d=Directory.CreateDirectory("c:\sixAge"); 
// d1指向c:sixAgesixAge1 
    DirectoryInfo d1=d.CreateSubdirectory("sixAge1"); 
// d2指向c:sixAgesixAge1sixAge1_1 
    DirectoryInfo d2=d1.CreateSubdirectory("sixAge1_1"); 
// 将当前目录设为c:sixAge 
    Directory.SetCurrentDirectory("c:\sixAge"); 
// 创制目录c:sixAgesixAge2 
    Directory.CreateDirectory("sixAge2"); 
// 成立目录c:sixAgesixAge2sixAge2_1 
    Directory.CreateDirectory("sixAge2\sixAge2_1"); 
递归删除文件夹及文件 
  <%@ Page Language=C#%> 
  <%@ Import namespace="System.IO"%> 
  <script_ runat=server> 
  public void DeleteFolder(string dir) 
  { 
    if (Directory.Exists(dir)) //假诺存在那个文件夹删除之 
    { 
      foreach(string d in Directory.GetFileSystemEntries(dir)) 
      { 
        if(File.Exists(d)) 
          File.Delete(d); //直接删除在那之中的文书 
        else 
          DeleteFolder(d); //递归删除子文件夹 
      } 
      Directory.Delete(dir); //删除已空文件夹 
      Response.Write(dir " 文件夹删除成功"); 
    } 
    else 
      Response.Write(dir " 该文件夹海市蜃楼"); //假设文件夹不设有则提醒 
  } 
  protected void Page_Load (Object sender ,EventArgs e) 
  { 
    string Dir="D:\gbook\11"; 
    DeleteFolder(Dir); //调用函数删除文件夹 
  }

   /// <summary>
   /// 获取文件夹下的文件列表
   /// </summary>
    /// <param name="Path">string Path:文件夹路径(@"C:")</param>
    /// <param name="SearchPattern">string SearchPattern:扩展名过滤("*.txt")</param>
    /// <param name="SearchChild">bool SearchChild:为False不搜索子目录,为True搜索子目录</param>
   /// <returns></returns>

    public string[] GetFileList(string Path, string SearchPattern, bool SearchChild)
    {
        //判断文件夹是否存在
        if (Directory.Exists(Path)==false)
        {
        return null;
        }
        if (SearchChild){
        //搜索子目录
        return Directory.GetFiles(Path, SearchPattern, SearchOption.AllDirectories);
        }
        else
        {
            //不搜索子目录
            return Directory.GetFiles(Path, SearchPattern, SearchOption.TopDirectoryOnly);
        }
    }

 

// ======================================================
// 完成三个静态方法将点名文件夹上边包车型地铁具备剧情copy到目的文件夹上面
// 假若指标文件夹为只读属性就能够报错。
// April 18April2005 In STU
// ======================================================
  public static void CopyDir(string srcPath,string aimPath)
  {
    try
    {
      // 检查指标目录是还是不是以目录分割字符甘休要是否则增添之
      if(aimPath[aimPath.Length-1] != Path.DirectorySeparatorChar) 
        aimPath = Path.DirectorySeparatorChar;
      // 推断目的目录是还是不是留存假设不设有则新建之
      if(!Directory.Exists(aimPath)) Directory.CreateDirectory(aimPath);
      // 获得源目录的文件列表,该内部是带有文件以及目录路线的一个数组
      // 如若您指向copy目的文件上面包车型大巴文书而不含有目录请使用上边的秘籍
      // string[] fileList = Directory.GetFiles(srcPath);
      string[] fileList = Directory.GetFileSystemEntries(srcPath);
      // 遍历全体的文书和目录
      foreach(string file in fileList)
      {
        // 先当作目录管理假若存在那么些目录就递归Copy该目录下边包车型大巴文书
        if(Directory.Exists(file))
          CopyDir(file,aimPath Path.GetFileName(file));
        // 不然直接Copy文件
        else
          File.Copy(file,aimPath Path.GetFileName(file),true);
      }
    }
    catch (Exception e)
    {
      MessageBox.Show (e.ToString());
    }
  } 
// ======================================================
// 达成贰个静态方法将点名文件夹上面包车型客车装有内容Detele
// 测验的时候要小心操作,删除之后不大概恢复生机。
// ======================================================
  public static void DeleteDir(string aimPath)
  {
    try
    {
      // 检查目的目录是或不是以目录分割字符截止假设不是则加多之
      if(aimPath[aimPath.Length-1] != Path.DirectorySeparatorChar) 
        aimPath = Path.DirectorySeparatorChar;
      // 得到源目录的文书列表,该内部是带有文件以及目录路径的贰个数组
      // 假使您指向Delete指标文件上面包车型大巴文书而不含有目录请使用下面包车型大巴方法
      // string[] fileList = Directory.GetFiles(aimPath);
      string[] fileList = Directory.GetFileSystemEntries(aimPath);
      // 遍历全部的文书和目录
      foreach(string file in fileList)
      {
        // 先当作目录管理假如存在这么些目录就递归Delete该目录下边包车型大巴文书
        if(Directory.Exists(file))
        {
          DeleteDir(aimPath Path.GetFileName(file));
        }
        // 不然直接Delete文件
        else
        {
          File.Delete (aimPath Path.GetFileName(file));
        }
      }
    //删除文件夹
    System.IO .Directory .Delete (aimPath,true);
    }
    catch (Exception e)
    {
      MessageBox.Show (e.ToString());
    }
  }
内需援用命名空间:
using System.IO;
/**//// <summary>

// ======================================================
// 实现二个静态方法将点名文件夹上面包车型大巴拥有内容copy到对象文件夹上面
// 假若指标文件夹为只读属性就能报错。
// April 18April2005 In STU
// ======================================================
  public static void CopyDir(string srcPath,string aimPath)
  {
    try
    {
      // 检查指标目录是或不是以目录分割字符停止倘使不是则增加之
      if(aimPath[aimPath.Length-1] != Path.DirectorySeparatorChar) 
        aimPath = Path.DirectorySeparatorChar;
      // 推断目的目录是或不是存在假若空头支票则新建之
      if(!Directory.Exists(aimPath)) Directory.CreateDirectory(aimPath);
      // 获得源目录的公文列表,该内部是富含文件以及目录路线的三个数组
      // 假设您指向copy目的文件上面包车型客车文件而不包罗目录请使用下边包车型客车办法
      // string[] fileList = Directory.GetFiles(srcPath);
      string[] fileList = Directory.GetFileSystemEntries(srcPath);
      // 遍历全数的公文和目录
      foreach(string file in fileList)
      {
        // 先当作目录管理借使存在那些目录就递归Copy该目录上面包车型客车公文
        if(Directory.Exists(file))
          CopyDir(file,aimPath Path.GetFileName(file));
        // 不然直接Copy文件
        else
          File.Copy(file,aimPath Path.GetFileName(file),true);
      }
    }
    catch (Exception e)
    {
      MessageBox.Show (e.ToString());
    }
  } 
// ======================================================
// 落成贰个静态方法将点名文件夹上边包车型大巴具备内容Detele
// 测量试验的时候要小心操作,删除之后不只怕复苏。
// ======================================================
  public static void DeleteDir(string aimPath)
  {
    try
    {
      // 检查指标目录是不是以目录分割字符甘休要是或不是则增多之
      if(aimPath[aimPath.Length-1] != Path.DirectorySeparatorChar) 
        aimPath = Path.DirectorySeparatorChar;
      // 得到源目录的文本列表,该内部是包含文件以及目录路线的一个数组
      // 如果你指向Delete指标文件上面包车型地铁公文而不分包目录请使用上边包车型地铁措施
      // string[] fileList = Directory.GetFiles(aimPath);
      string[] fileList = Directory.GetFileSystemEntries(aimPath);
      // 遍历全部的文本和目录
      foreach(string file in fileList)
      {
        // 先当作目录管理倘使存在那几个目录就递归Delete该目录下边包车型地铁文本
        if(Directory.Exists(file))
        {
          DeleteDir(aimPath Path.GetFileName(file));
        }
        // 否则直接Delete文件
        else
        {
          File.Delete (aimPath Path.GetFileName(file));
        }
      }
    //删除文件夹
    System.IO .Directory .Delete (aimPath,true);
    }
    catch (Exception e)
    {
      MessageBox.Show (e.ToString());
    }
  }
需求援用命名空间:
using System.IO;
/**//// <summary>

二、张开文件

// ======================================================
  // 达成贰个静态方法将钦赐文件夹上面的有着剧情copy到对象文件夹上边
  // 若是目标文件夹为只读属性就能够报错。
  // April 18April2005 In STU
  // ======================================================
  public static void CopyDir(string srcPath,string aimPath)
  {
   try
   {
    // 检查指标目录是不是以目录分割字符甘休假如不是则增添之
    if(aimPath[aimPath.Length-1] != Path.DirectorySeparatorChar)
     aimPath = Path.DirectorySeparatorChar;
    // 决断指标目录是还是不是留存若是不设有则新建之
    if(!Directory.Exists(aimPath)) Directory.CreateDirectory(aimPath);
    // 获得源目录的文本列表,该内部是含有文件以及目录路线的三个数组
    // 假若你指向copy目的文件下边包车型客车公文而不分包目录请使用下边包车型客车方式
    // string[] fileList = Directory.GetFiles(srcPath);
    string[] fileList = Directory.GetFileSystemEntries(srcPath);
    // 遍历全数的文本和目录
    foreach(string file in fileList)
    {
     // 先当作目录处理假诺存在那一个目录就递归Copy该目录下边包车型地铁文本
     if(Directory.Exists(file))
      CopyDir(file,aimPath Path.GetFileName(file));
      // 不然直接Copy文件
     else
      File.Copy(file,aimPath Path.GetFileName(file),true);
    }
   }
   catch (Exception e)
   {
    MessageBox.Show (e.ToString());
   }
  }
 // ======================================================
  // 达成二个静态方法将内定文件夹下边的享有内容Detele
  // 测量检验的时候要小心操作,删除之后不能够恢复生机。
  // ======================================================
  public static void DeleteDir(string aimPath)
  {
   try
   {
    // 检查指标目录是不是以目录分割字符结束要是或不是则增加之
    if(aimPath[aimPath.Length-1] != Path.DirectorySeparatorChar)
     aimPath = Path.DirectorySeparatorChar;
    // 获得源目录的文书列表,该内部是含有文件以及目录路线的贰个数组
    // 若是您指向Delete指标文件上面包车型地铁文本而不含有目录请使用上边包车型地铁主意
    // string[] fileList = Directory.GetFiles(aimPath);
    string[] fileList = Directory.GetFileSystemEntries(aimPath);
    // 遍历全体的文书和目录
    foreach(string file in fileList)
    {
     // 先当作目录管理要是存在那个目录就递归Delete该目录下边包车型客车文书
     if(Directory.Exists(file))
     {
      DeleteDir(aimPath Path.GetFileName(file));
     }
      // 不然直接Delete文件
     else
文件流操作,移动文件。     {
      File.Delete (aimPath Path.GetFileName(file));
     }
    }
    //删除文件夹
    System.IO .Directory .Delete (aimPath,true);
   }
   catch (Exception e)
   {
    MessageBox.Show (e.ToString());
   }
  }
亟待援引命名空间:
using System.IO;
/**//// <summary>
 
  /// </summary>
  /// <param ></param>
  /// <param ></param>
  //--------------------------------------------------
 //---------------------------------------------------
  public static void CopyFolder(string strFromPath,string strToPath)
  {
   //要是源文件夹海市蜃楼,则开创
   if (!Directory.Exists(strFromPath))
   {   
    Directory.CreateDirectory(strFromPath);
   }  
   //取得要拷贝的文书夹名
   string strFolderName = strFromPath.Substring(strFromPath.LastIndexOf("\") 1,strFromPath.Length - strFromPath.LastIndexOf("\") - 1);  
   //如若目的文件夹中未有源文件夹则在对象文件夹中创制源文件夹
   if (!Directory.Exists(strToPath "\" strFolderName))
   {   
    Directory.CreateDirectory(strToPath "\" strFolderName);
   }
   //成立数组保存源文件夹下的公文名
   string[] strFiles = Directory.GetFiles(strFromPath);
   //循环拷贝文件
   for(int i = 0;i < strFiles.Length;i )
   {
    //获得拷贝的公文名,只取文件名,地址截掉。
    string strFileName = strFiles[i].Substring(strFiles[i].LastIndexOf("\") 1,strFiles[i].Length - strFiles[i].LastIndexOf("\") - 1);
    //最初拷贝文件,true表示覆盖同名文件
    File.Copy(strFiles[i],strToPath "\" strFolderName "\"

/// </summary>
/// <param ></param>
/// <param ></param>
//--------------------------------------------------
//---------------------------------------------------
public static void CopyFolder(string strFromPath,string strToPath)
{
    //如若源文件夹荒诞不经,则开创
  if (!Directory.Exists(strFromPath))
  { 
    Directory.CreateDirectory(strFromPath);
  } 
  //获得要拷贝的文件夹名
  string strFolderName = strFromPath.Substring(strFromPath.LastIndexOf("\") 1,strFromPath.Length - strFromPath.LastIndexOf("\") - 1); 
  //要是指标文件夹中绝非源文件夹则在目的文件夹中创制源文件夹
  if (!Directory.Exists(strToPath "\" strFolderName))
  { 
    Directory.CreateDirectory(strToPath "\" strFolderName);
  }
  //创造数组保存源文件夹下的公文名
  string[] strFiles = Directory.GetFiles(strFromPath);
  //循环拷贝文件
  for(int i = 0;i < strFiles.Length;i )
  {
  //取得拷贝的公文名,只取文件名,地址截掉。
  string strFileName = strFiles[i].Substring(strFiles[i].LastIndexOf("\") 1,strFiles[i].Length - strFiles[i].LastIndexOf("\") - 1);
  //最初拷贝文件,true表示覆盖同名文件
  File.Copy(strFiles[i],strToPath "\" strFolderName "\"

/// </summary>
/// <param ></param>
/// <param ></param>
//--------------------------------------------------
//---------------------------------------------------
public static void CopyFolder(string strFromPath,string strToPath)
{
    //若是源文件夹不设有,则创立
  if (!Directory.Exists(strFromPath))
  { 
    Directory.CreateDirectory(strFromPath);
  } 
  //获得要拷贝的公文夹名
  string strFolderName = strFromPath.Substring(strFromPath.LastIndexOf("\") 1,strFromPath.Length - strFromPath.LastIndexOf("\") - 1); 
  //假使目的文件夹中尚无源文件夹则在对象文件夹中创制源文件夹
  if (!Directory.Exists(strToPath "\" strFolderName))
  { 
    Directory.CreateDirectory(strToPath "\" strFolderName);
  }
  //创立数组保存源文件夹下的文本名
  string[] strFiles = Directory.GetFiles(strFromPath);
  //循环拷贝文件
  for(int i = 0;i < strFiles.Length;i )
  {
  //获得拷贝的文本名,只取文件名,地址截掉。
  string strFileName = strFiles[i].Substring(strFiles[i].LastIndexOf("\") 1,strFiles[i].Length - strFiles[i].LastIndexOf("\") - 1);
  //初叶拷贝文件,true表示覆盖同名文件
  File.Copy(strFiles[i],strToPath "\" strFolderName "\"

    /// <summary>
    /// 打开文件
    /// </summary>
    /// <param name="Path">string Path:文件路径</param>
    /// <returns></returns>
    public System.Diagnostics.Process OpenFile(string Path)
    {
        if (File.Exists(Path) == true)
        {//打开文件,默认用系统注册类型关联软件打开
            return System.Diagnostics.Process.Start(Path);
        }
        else
        {
            return null;
        }
    }
  • strFileName,true);
       }
     
       //创建DirectoryInfo实例
       DirectoryInfo dirInfo = new DirectoryInfo(strFromPath);
       //获得源文件夹下的全部子文件夹名称
       DirectoryInfo[] ZiPath = dirInfo.GetDirectories();
       for (int j = 0;j < ZiPath.Length;j )
       {
        //获取全部子文件夹名
        string strZiPath = strFromPath "\" ZiPath[j].ToString();  
        //把获得的子文件夹当成新的源文件夹,从头起初新一轮的正片
        CopyFolder(strZiPath,strToPath "\" strFolderName);
       }
      }
    一.读取文本文件
     /**//// <summary>
      /// 读取文本文件
      /// </summary>
      private void ReadFromTxtFile()
      {
          if(filePath.PostedFile.FileName != "")
          {
              txtFilePath =filePath.PostedFile.FileName;
              fileExtName = txtFilePath.Substring(txtFilePath.LastIndexOf(".") 1,3);
     
             if(fileExtName !="txt" && fileExtName != "TXT")
             {
                 Response.Write("请选取文本文件");
             }
             else
             {
                 StreamReader fileStream = new StreamReader(txtFilePath,Encoding.Default);
                 txtContent.Text = fileStream.ReadToEnd();
                 fileStream.Close();
             }
         }
      }
    二.获得文件列表
    /**//// <summary>
      /// 获取文件列表
     /// </summary>
      private void GetFileList()
      {
          string strCurDir,FileName,FileExt;
         
          /**////文件大小
         long FileSize;
        
         /**////最终修改时间;
         DateTime FileModify;
     
         /**////初始化
         if(!IsPostBack)
         {
             /**////伊始化时,默觉稳妥前页面所在的目录
             strCurDir = Server.MapPath(".");
             lblCurDir.Text = strCurDir;
             txtCurDir.Text = strCurDir;
         }
         else
         {
             strCurDir = txtCurDir.Text;
             txtCurDir.Text = strCurDir;
             lblCurDir.Text = strCurDir;
         }
         FileInfo fi;
         DirectoryInfo dir;
         TableCell td;
         TableRow tr;
         tr = new TableRow();
        
         /**////动态增添单元格内容
         td = new TableCell();
         td.Controls.Add(new LiteralControl("文件名"));
         tr.Cells.Add(td);
         td = new TableCell();
         td.Controls.Add(new LiteralControl("文件类型"));
         tr.Cells.Add(td);
         td = new TableCell();
         td.Controls.Add(new LiteralControl("文件大小"));
         tr.Cells.Add(td);
         td = new TableCell();
         td.Controls.Add(new LiteralControl("最终修改时间"));
         tr.Cells.Add(td);
     
         tableDirInfo.Rows.Add(tr);
        
         /**////针对当前目录营造目录引用对象
         DirectoryInfo dirInfo = new DirectoryInfo(txtCurDir.Text);
        
         /**////循环剖断当前目录下的文书和目录
         foreach(FileSystemInfo fsi in dirInfo.GetFileSystemInfos())
         {
             FileName = "";
             FileExt = "";
             FileSize = 0;
            
             /**////要是是文本
             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 = "文件夹";
             }
            
             /**////动态加多表格内容
             tr = new TableRow();
             td = new TableCell();
             td.Controls.Add(new LiteralControl(FileName));
             tr.Cells.Add(td);
             td = new TableCell();
             td.Controls.Add(new LiteralControl(FileExt));
            tr.Cells.Add(td);
            td = new TableCell();
            td.Controls.Add(new LiteralControl(FileSize.ToString() "字节"));
            tr.Cells.Add(td);
            td = new TableCell();
            td.Controls.Add(new LiteralControl(FileModify.ToString("yyyy-mm-dd hh:mm:ss")));
            tr.Cells.Add(td);
            tableDirInfo.Rows.Add(tr);
        }
    }
    三.读取日志文件
    /**//// <summary>
    /// 读取日志文件
    /// </summary>
    private void ReadLogFile()
    {
        /**////从指定的目录以开垦或然成立的格局读取日志文件
        FileStream fs  = new FileStream(Server.MapPath("upedFile") "\logfile.txt", FileMode.OpenOrCreate, FileAccess.Read);
  • strFileName,true);
      }
  • strFileName,true);
      }

*可对张开的文书举香港行政局地操作:

    /**////定义输出字符串
    StringBuilder output = new StringBuilder();
   
    /**////初阶化该字符串的长短为0
    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();
   
    /**////再次来到读到的日志文件内容
    return output.ToString();
}
四.写入日志文件

  //创建DirectoryInfo实例
  DirectoryInfo dirInfo = new DirectoryInfo(strFromPath);
  //获得源文件夹下的全体子文件夹名称
  DirectoryInfo[] ZiPath = dirInfo.GetDirectories();
  for (int j = 0;j < ZiPath.Length;j )
  {
    //获取全数子文件夹名
    string strZiPath = strFromPath "\" ZiPath[j].ToString(); 
    //把收获的子文件夹当成新的源文件夹,从头初叶新一轮的正片
    CopyFolder(strZiPath,strToPath "\" strFolderName);
  }
}
一.读取文本文件
 /**//// <summary>
 /// 读取文本文件
 /// </summary>
 private void ReadFromTxtFile()
 {
    if(filePath.PostedFile.FileName != "")
    {
      txtFilePath =filePath.PostedFile.FileName;
      fileExtName = txtFilePath.Substring(txtFilePath.LastIndexOf(".") 1,3);
 
      if(fileExtName !="txt" && fileExtName != "TXT")
      {
      Response.Write("请采纳文本文件");
      }
      else
      {
      StreamReader fileStream = new StreamReader(txtFilePath,Encoding.Default);
      txtContent.Text = fileStream.ReadToEnd();
      fileStream.Close();
     }
    }
  }
二.获得文件列表
/**//// <summary>
/// 获取文件列表
/// </summary>
private void GetFileList()
{
  string strCurDir,FileName,FileExt;

  //创建DirectoryInfo实例
  DirectoryInfo dirInfo = new DirectoryInfo(strFromPath);
  //取得源文件夹下的全体子文件夹名称
  DirectoryInfo[] ZiPath = dirInfo.GetDirectories();
  for (int j = 0;j < ZiPath.Length;j )
  {
    //获取全体子文件夹名
    string strZiPath = strFromPath "\" ZiPath[j].ToString(); 
    //把收获的子文件夹当成新的源文件夹,从头开头新一轮的正片
    CopyFolder(strZiPath,strToPath "\" strFolderName);
  }
}
一.读取文本文件
 /**//// <summary>
 /// 读取文本文件
 /// </summary>
 private void ReadFromTxtFile()
 {
    if(filePath.PostedFile.FileName != "")
    {
      txtFilePath =filePath.PostedFile.FileName;
      fileExtName = txtFilePath.Substring(txtFilePath.LastIndexOf(".") 1,3);
 
      if(fileExtName !="txt" && fileExtName != "TXT")
      {
      Response.Write("请选择文本文件");
      }
      else
      {
      StreamReader fileStream = new StreamReader(txtFilePath,Encoding.Default);
      txtContent.Text = fileStream.ReadToEnd();
      fileStream.Close();
     }
    }
  }
二.获得文件列表
/**//// <summary>
/// 获取文件列表
/// </summary>
private void GetFileList()
{
  string strCurDir,FileName,FileExt;

public System.Diagnostics.Process p1;

/**//// <summary>
/// 写入日志文件
/// </summary>
/// <param ></param>
private void WriteLogFile(string input)
{   
    /**////钦命日志文件的目录
    string fname = Server.MapPath("upedFile") "\logfile.txt";
    /**////定义文件消息目的
    FileInfo finfo = new FileInfo(fname);

  /**////文件大小
  long FileSize;

  /**////文件大小
  long FileSize;

p1=OpenFile(@"c:1.txt");

    /**////判定文件是还是不是留存以及是还是不是高于2K
    if ( finfo.Exists && finfo.Length > 2048 )
    {
        /**////删除该公文
        finfo.Delete();
    }
    /**////成立只写文件流
    using(FileStream fs = finfo.OpenWrite())
    {
        /**////依照上边创设的文书流创设写数据流
        StreamWriter w = new StreamWriter(fs);
       
        /**////设置写数据流的起第一地方为文件流的末尾
        w.BaseStream.Seek(0, SeekOrigin.End);
       
              w.Write("nLog Entry : ");
       
        /**////写入当前系统时间并换行
        w.Write("{0} {1} rn",DateTime.Now.ToLongTimeString(),DateTime.Now.ToLongDateString());
       
        /**////写入日志内容并换行
        w.Write(input "n");
       
        /**////写入------------------------------------“并换行
        w.Write("------------------------------------n");
       
        /**////清空缓冲区内容,并把缓冲区内容写入基础流
        w.Flush();
       
        /**////关闭写数据流
        w.Close();
    }
}
五.C#创建HTML文件
 /**//// <summary>
 /// 创建HTML文件
 /// </summary>
 private void CreateHtmlFile()
{   
    /**////定义和html标志数目一致的数组
     string[] newContent = new string[5];
     StringBuilder strhtml = new StringBuilder();
    try
    {
        /**////创建StreamReader对象
        using (StreamReader sr = new StreamReader(Server.MapPath("createHTML") "\template.html"))
        {
            String oneline;
           
            /**////读取钦点的HTML文件模板
            while ((oneline = sr.ReadLine()) != null)
            {
                strhtml.Append(oneline);
            }
            sr.Close();
        }
    }
    catch(Exception err)
    {
        /**////输出拾分新闻
        Response.Write(err.ToString());
    }
    /**////为标识数组赋值
    newContent[0] = txtTitle.Text;//标题
    newContent[1] = "BackColor='#cccfff'";//背景色
    newContent[2] = "#ff0000";//字体颜色
    newContent[3] = "100px";//字体大小
    newContent[4] = txtContent.Text;//首要内容

  /**////最终修改时间;
  DateTime FileModify;

  /**////最终修改时间;
  DateTime FileModify;

p1..Kill();//关闭展开的文本

    /**////依照上边新的内容生成html文件
    try
    {
        /**////钦命要转移的HTML文件
        string fname = Server.MapPath("createHTML") "\" DateTime.Now.ToString("yyyymmddhhmmss") ".html";
       
        /**////替换html模版文件里的符号为新的源委
        for(int i=0;i < 5;i )
        {
            strhtml.Replace("$htmlkey[" i "]",newContent[i]);
        }
        /**////创立文件消息指标
        FileInfo finfo = new FileInfo(fname);
       
        /**////以张开恐怕写入的样式创制文件流
        using(FileStream fs = finfo.OpenWrite())
        {
            /**////依照上边制造的文件流创设写数据流
            StreamWriter sw = new StreamWriter(fs,System.Text.Encoding.GetEncoding("GB2312"));
           
            /**////把新的开始和结果写到创设的HTML页面中
            sw.WriteLine(strhtml);
            sw.Flush();
            sw.Close();
        }
       
        /**////设置一级链接的属性
        hyCreateFile.Text = DateTime.Now.ToString("yyyymmddhhmmss") ".html";
        hyCreateFile.NavigateUrl = "createHTML/" DateTime.Now.ToString("yyyymmddhhmmss") ".html";
    }
    catch(Exception err)
    {
        Response.Write (err.ToString());
    }
}
CreateDirectory方法的选拔
 using   System;  
  using   System.IO;  
   
  class   Test    
  {  
          public   static   void   Main()    
          {  
                  //   Specify   the   directory   you   want   to   manipulate.  
                  string   path   =   @"c:MyDir";  
   
                  try    
                  {  
                          //   Determine   whether   the   directory   exists.  
                          if   (Directory.Exists(path))    
                          {  
                                  Console.WriteLine("That   path   exists   already.");  
                                  return;  
                          }  
   
                          //   Try   to   create   the   directory.  
                          DirectoryInfo   di   =   Directory.CreateDirectory(path);  
                          Console.WriteLine("The   directory   was   created   successfully   at   {0}.",   Directory.GetCreationTime(path));  
   
                          //   Delete   the   directory.  
                          di.Delete();  
                          Console.WriteLine("The   directory   was   deleted   successfully.");  
                  }    
                  catch   (Exception   e)    
                  {  
                          Console.WriteLine("The   process   failed:   {0}",   e.ToString());  
                  }    
                  finally   {}  
          }  
  }  

  /**////初始化
  if(!IsPostBack)
  {
    /**////早先化时,默觉安妥前页面所在的目录
    strCurDir = Server.MapPath(".");
    lblCurDir.Text = strCurDir;
    txtCurDir.Text = strCurDir;
  }
  else
  {
    strCurDir = txtCurDir.Text;
    txtCurDir.Text = strCurDir;
    lblCurDir.Text = strCurDir;
  }
  FileInfo fi;
  DirectoryInfo dir;
  TableCell td;
  TableRow tr;
  tr = new TableRow();

  /**////初始化
  if(!IsPostBack)
  {
    /**////伊始化时,默感到当前页面所在的目录
    strCurDir = Server.MapPath(".");
    lblCurDir.Text = strCurDir;
    txtCurDir.Text = strCurDir;
  }
  else
  {
    strCurDir = txtCurDir.Text;
    txtCurDir.Text = strCurDir;
    lblCurDir.Text = strCurDir;
  }
  FileInfo fi;
  DirectoryInfo dir;
  TableCell td;
  TableRow tr;
  tr = new TableRow();

p1.WaitForExit();//等待打开的公文关闭

  /**////动态加多单元格内容
  td = new TableCell();
  td.Controls.Add(new LiteralControl("文件名"));
  tr.Cells.Add(td);
  td = new TableCell();
  td.Controls.Add(new LiteralControl("文件类型"));
  tr.Cells.Add(td);
  td = new TableCell();
  td.Controls.Add(new LiteralControl("文件大小"));
  tr.Cells.Add(td);
  td = new TableCell();
  td.Controls.Add(new LiteralControl("最终修改时间"));
  tr.Cells.Add(td);

  /**////动态增加单元格内容
  td = new TableCell();
  td.Controls.Add(new LiteralControl("文件名"));
  tr.Cells.Add(td);
  td = new TableCell();
  td.Controls.Add(new LiteralControl("文件类型"));
  tr.Cells.Add(td);
  td = new TableCell();
  td.Controls.Add(new LiteralControl("文件大小"));
  tr.Cells.Add(td);
  td = new TableCell();
  td.Controls.Add(new LiteralControl("最后修改时间"));
  tr.Cells.Add(td);

p1.MainWindowTitle;//获取展开文件主窗口的标题

  tableDirInfo.Rows.Add(tr);

  tableDirInfo.Rows.Add(tr);

p1.HasExited;//推断打开的文件是还是不是已关闭

  /**////针对当前目录建设构造目录援用对象
  DirectoryInfo dirInfo = new DirectoryInfo(txtCurDir.Text);

  /**////针对当前目录建设构造目录引用对象
  DirectoryInfo dirInfo = new DirectoryInfo(txtCurDir.Text);

三、获取文件新闻

  /**////循环决断当前目录下的文书和目录
  foreach(FileSystemInfo fsi in dirInfo.GetFileSystemInfos())
  {
    FileName = "";
    FileExt = "";
    FileSize = 0;

  /**////循环剖断当前目录下的公文和目录
  foreach(FileSystemInfo fsi in dirInfo.GetFileSystemInfos())
  {
    FileName = "";
    FileExt = "";
    FileSize = 0;

    /// <summary>
    /// 获取文件信息
    /// </summary>
    /// <param name="Path">string Path:文件路径</param>
    /// <returns></returns>
    public FileInfo GetFileInfo(string Path)
    {
        if (File.Exists(Path) == true)
        {
            return new FileInfo(Path);

        }
        else
        {
            return null;
        }
    }

    /**////假若是文本
    if(fsi is FileInfo)
    {
      fi = (FileInfo)fsi;

    /**////假设是文本
    if(fsi is FileInfo)
    {
      fi = (FileInfo)fsi;

*行使方法如下:

      /**////猎取文件名
      FileName = fi.Name;

      /**////获得文件名
      FileName = fi.Name;

FileInfo fi1 = GetFileInfo(@"f:1.txt");

      /**////获得文件的恢弘名
      FileExt = fi.Extension;

      /**////取得文件的增加名
      FileExt = fi.Extension;

fi1.Extension;//获取文件的扩展名

      /**////获得文件的分寸
      FileSize = fi.Length;

      /**////获得文件的深浅
      FileSize = fi.Length;

fi1.DirectoryName;//获取文件所在完整目录

      /**////取得文件的终极修改时间
      FileModify = fi.LastWriteTime;
    }

      /**////获得文件的末梢修改时间
      FileModify = fi.LastWriteTime;
    }

fi1.Length;//获取文件的字节数

      /**////不然是目录
    else
    {
      dir = (DirectoryInfo)fsi;

      /**////不然是目录
    else
    {
      dir = (DirectoryInfo)fsi;

fi1.Name;//获取文件名,包括扩展名

      /**////取得目录名
      FileName = dir.Name;

      /**////猎取目录名
      FileName = dir.Name;

fi1.Name.Replace(f1.Extension, "");//获取文件名,不蕴涵扩充名

      /**////猎取目录的结尾修改时间
      FileModify = dir.LastWriteTime;

      /**////取得目录的最终修改时间
      FileModify = dir.LastWriteTime;

四、创设文件夹

      /**////设置文件的庞大名称为"文件夹"
      FileExt = "文件夹";
    }

      /**////设置文件的扩大名叫"文件夹"
      FileExt = "文件夹";
    }

    /// <summary>
    /// 创建文件夹
    /// </summary>
    /// <param name="Path">string Path:文件夹路径</param>
    /// <returns></returns>
    public bool CreateDir(string Path)
    {
        try
        {//判断文件夹是否存在
            if (Directory.Exists(Path) == false)
            {
                Directory.CreateDirectory(Path);
                return true;
            }
            else
            {
                return false;
            }

        }
        catch
        {
            return false;
        }
    }

    /**////动态增添表格内容
    tr = new TableRow();
    td = new TableCell();
    td.Controls.Add(new LiteralControl(FileName));
    tr.Cells.Add(td);
    td = new TableCell();
    td.Controls.Add(new LiteralControl(FileExt));
    tr.Cells.Add(td);
    td = new TableCell();
    td.Controls.Add(new LiteralControl(FileSize.ToString() "字节"));
    tr.Cells.Add(td);
    td = new TableCell();
    td.Controls.Add(new LiteralControl(FileModify.ToString("yyyy-mm-dd hh:mm:ss")));
    tr.Cells.Add(td);
    tableDirInfo.Rows.Add(tr);
  }

三.读取日志文件
/**//// <summary>
/// 读取日志文件
/// </summary>
private void ReadLogFile()
{
  /**////从内定的目录以开垦或许创制的款型读取日志文件
  FileStream fs = new FileStream(Server.MapPath("upedFile") "\logfile.txt", FileMode.OpenOrCreate, FileAccess.Read);

    /**////动态增多表格内容
    tr = new TableRow();
    td = new TableCell();
    td.Controls.Add(new LiteralControl(FileName));
    tr.Cells.Add(td);
    td = new TableCell();
    td.Controls.Add(new LiteralControl(FileExt));
    tr.Cells.Add(td);
    td = new TableCell();
    td.Controls.Add(new LiteralControl(FileSize.ToString() "字节"));
    tr.Cells.Add(td);
    td = new TableCell();
    td.Controls.Add(new LiteralControl(FileModify.ToString("yyyy-mm-dd hh:mm:ss")));
    tr.Cells.Add(td);
    tableDirInfo.Rows.Add(tr);
  }

三.读取日志文件
/**//// <summary>
/// 读取日志文件
/// </summary>
private void ReadLogFile()
{
  /**////从钦点的目录以展开或然创设的款式读取日志文件
  FileStream fs = new FileStream(Server.MapPath("upedFile") "\logfile.txt", FileMode.OpenOrCreate, FileAccess.Read);

五、用二进制数组生成文件
///

  /**////定义输出字符串
  StringBuilder output = new StringBuilder();

  /**////定义输出字符串
  StringBuilder output = new StringBuilder();

/// 用二进制数组Byte[]变迁文书
///
/// string Path:要转移的公文全路径
/// byte[] StreamByte:要扭转文书的二进制 Byte 数组
///
public bool ByteStreamToFile(string Path, byte[] StreamByte)
{
try
{//决断要制造的文书是还是不是留存,若存在则先删除
if (File.Exists(Path) == true)
{
File.Delete(Path);
}
//创设文件流(打开或创办的秘技)
FileStream FS = new FileStream(Path, FileMode.OpenOrCreate);
//把文件流写到文件中
FS.Write(StreamByte, 0, StreamByte.Length);
FS.Close();
return true;
}
catch
{
return false;
}
}

  /**////发轫化该字符串的长度为0
  output.Length = 0;

  /**////初步化该字符串的长短为0
  output.Length = 0;

六、获取系统文件夹

  /**////为上边创设的文本流创造读取数据流
  StreamReader read = new StreamReader(fs);

  /**////为上边制造的文书流创造读取数据流
  StreamReader read = new StreamReader(fs);

Environment.GetFolderPath(Environment.SpecialFolder.Startup)

  /**////设置当前流的开场位置为文件流的伊始点
  read.BaseStream.Seek(0, SeekOrigin.Begin);

  /**////设置当前流的前奏地方为文件流的开头点
  read.BaseStream.Seek(0, SeekOrigin.Begin);

说明:

  /**////读取文件
  while (read.Peek() > -1) 
  {
    /**////取文件的一行内容并换行
    output.Append(read.ReadLine() "n");
  }

  /**////读取文件
  while (read.Peek() > -1) 
  {
    /**////取文件的一行内容并换行
    output.Append(read.ReadLine() "n");
  }

ApplicationData 目录,它当做当前骑行客户的应用程序特定数据的集体储存库。
CommonApplicationData 目录,它看作全部客户使用的应用程序特定数据的共用积存库。
CommonProgramFiles 用于应用程序间分享的机件的目录。
Cookies 用作 Internet Cookie 的国有储存库的目录。
Desktop 逻辑桌面,实际不是梗概文件系统地点。
DesktopDirectory 用于物理上囤积桌面上的文件对象的目录。
Favorites 用功效户收藏夹项的公家累积库的目录。
History 用作 Internet 历史记录项的国有积存库的目录。
InternetCache 用作 Internet 一时文件的集体积攒库的目录。
LocalApplicationData 目录,它看作当前非漫游客户采取的应用程序特定数据的共用积累库。
MyComputer “作者的微管理器”文件夹。
MyMusic “My Music”文件夹。
MyPictures “My Pictures”文件夹。
Personal 用作文书档案的国有积存库的目录。
ProgramFiles “Program files”目录。
Programs 包括顾客程序组的目录。
Recent 包蕴顾客方今使用过的文书档案的目录。
SendTo 饱含“发送”菜单项的目录。
StartMenu 包蕴“最初”菜单项的目录。
Startup 对应于客户的“运行”程序组的目录。
System “System”目录。

  /**////关闭释放读数据流
  read.Close();

  /**////关闭释放读数据流
  read.Close();

Templates 用作文书档案模板的共用储存库的目录。

文件流操作 之 删除、复制、转移两个文件

string[] format = { ".jpg", ".doc", ".exe", ".pdf", "*.xls" };

  1. 03.# 文件流操作 之 删除、复制、转移五个文件
    1. ///
  2. /// 删除文件夹上面全体图片

  3. ///

  4. /// 待删除文件路径

  5. /// 删除到的新目录

  6. /// 操作文件的格式 例如:*.png、*.xml

  7. public void deleteAll(string delpath, string format )

  8. {

  9. string[] files = Directory.GetFiles(delpath, format[0]);

  10. foreach (string file in files)

  11. {

  12. File.Delete(file);

  13. }

  14. }

  15. ///

  16. /// 复制文件夹下边全数图片

  17. ///

  18. /// 待复制文件路径

  19. /// 复制到的新目录

  20. /// 操作文件的格式 例如:*.png、*.xml

  21. public void copyALl(string oldpngPath, string newpngPath, string format )

  22. {

  23. string[] files = Directory.GetFiles(oldpngPath, format[0]);

  24. foreach (string file in files)

  25. {

  26. string otherFile = Path.Combine(oldpngPath, Path.GetFileName(file));

  27. File.Copy(file, newpngPath "" Path.GetFileName(file));

  28. }

  29. }

  30. ///

  31. /// 移动文件夹下的持有文件

  32. ///

  33. /// 待移动的文件目录

  34. /// 新目录

  35. public void moveAll(string olderpath, string topath)

  36. {

  37. string[] files = Directory.GetFiles(delpath, format[0]);

  38. foreach (string file in files)

  39. {

  40. File.Move(file, topath); //移动文件

  41. }

  42. }

    目录操作
    string[] drives = Directory.GetLogicalDrives(); //本地驱动器的名,如:C:等

string path = Directory.GetCurrentDirectory(); //获取应用程序的当前专门的工作目录

Path.GetFileName(@"c:dirfile.txt"); //获取子目录的名字,result的结果是file.txt

Directory.GetFiles(路线及文件名) //获取钦点目录中的文件名(文件列表)

DirectoryInfo di = new DirectoryInfo(@"f:MyDir"); //构造函数创立目录

DirectoryInfo di=Directory.CreateDirectory(@"f:bbs"); //创建对象并成立目录

if (di.Exists == false) //检查是不是留存此目录

{  di.Create();  } //创制目录

DirectoryInfo dis = di.CreateSubdirectory("SubDir"); //以相对路线创立子目录

dis.Delete(true); //删除刚创建的子目录

di.Delete(true); //删除创造目录

文本操作:
Directory.Delete(@"f:bbs2", true); //删除目录及其子目录和内容(如为假不能够去除有内容的目录包蕴子目录)

Directory.GetDirectories 方法 //获取钦定目录中子目录的称号

string[] dirs = Directory.GetDirectories(@"f:", "b*"); Console.WriteLine("此目录中以b最早的子目录共{0}个!", dirs.Length);

foreach (string dir in dirs) { Console.WriteLine(dir); }

Directory.GetFileSystemEntries //获取钦点目录中的目录及文件名

Directory.GetLogicalDrives //检索此Computer上格式为“<驱动器号>:”的逻辑驱动器的名号,【语法同上】

Directory.GetParent //用于检索父目录的路线。

DirectoryInfo a = Directory.GetParent(path);

Console.WriteLine(a.FullName);

Directory.Move //移动目录及其在内的持有文件

Directory.Move(@"f:bbs1", @"f:bbs2"); //将文件夹1内的公文剪到文件夹2内 文件夹2是刚成立的(即在程序试行的时候,文件夹2是不设有的)

文本流操作

// 对字节的读写操作(饱含对异步操作的支撑) Reading Writing Seeking
BinaryReader和BinaryWriter // 从字符串或原始数据到各样流之间的读写操作

FileStream类通过Seek()方法开展对文本的任意访谈,默以为同步

TextReader和TextWriter //用于gb2312字符的输入和出口

StringReader和StringWriter //在字符串中读写字符

StreamReader和StreamWriter //在流中读写字符

BufferedStream 为诸如网络流的别的流增加缓冲的一种流类型.

MemoryStream 无缓冲的流

NetworkStream 互联互联网上的流

编码调换

Encoding e1 = Encoding.Default; //获得本页暗许代码

Byte[] bytes = e1.GetBytes("中中原人民共和国人民解放军"); //转为二进制

string str = Encoding.GetEncoding("UTF-8").GetString(bytes); //转回UTF-8编码

string srcFileName = @"D:/a.txt";
string destFileName = @"D:/b.txt";

        string srcFolderPath = @"D:/1";
        string destFolderPath = @"D:/6";

        //方法一  
        if (System.IO.File.Exists(srcFileName))
        {
            System.IO.File.Move(srcFileName, destFileName);
        }
        if (System.IO.Directory.Exists(srcFolderPath))
        {
            System.IO.Directory.Move(srcFolderPath, destFolderPath);
        }

        //方法二 
        if (System.IO.File.Exists(srcFileName))
        {
            System.IO.FileInfo file = new System.IO.FileInfo(srcFileName);
            file.MoveTo(destFileName);
        }
        if (System.IO.Directory.Exists(srcFolderPath))
        {
            System.IO.DirectoryInfo folder = new System.IO.DirectoryInfo(srcFolderPath);
            folder.MoveTo(destFolderPath);

C# 重命名本地硬盘的公文名

1.先在项目中丰盛援用:Microsoft.VisualBasic

下一场在所需使用的文档中增进using Microsoft.VisualBasic.Devices; 命名空间

2.就下边两行

Computer MyComputer = new Computer();

MyComputer.FileSystem.RenameFile(FileName, newFileName);

中间FileName是您所要重命名的文书的全路线,newFileName仅仅是指标文件名;

创制文件夹:

要完毕的效益:在IIS服务器上制造文件夹,用来贮存在工厂生产的数码,文件夹目录依照UserData/DCCFile/year/mounth/filename的格局开创。当客户存文件的时候查找是还是不是留存此文件夹,一纸空文的时候则先创立文件夹,然后开展上传文件。

福寿绵绵逻辑:预先设定一个设想路线,用server.mappath()将文件要存放的相对路径映射到相对路线,然后用Directory类在相对路线中开创文件夹,然后将文件上传到此相对路径中。

完成代码:

string stryear = System.DateTime.Now.Year.ToString();

string strmonth = System.DateTime.Now.Month.ToString();

string path = Server.MapPath("~/UserData/DCCFile/" stryear "/" strmonth "/");//文件要上传来的设想路线

//path为经过映射的在本土磁盘上的相对路线

if (!Directory.Exists(path))//决断那么些绝对路线是或不是存在

{
Directory.CreateDirectory(path); //不设有文件夹时则创建文件夹
}

FileUpload1.SaveAs(path FileUpload1.FileName);//上传新文件

 string filename="文件名";

       string serverpath = System.Web.HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath   "/UserData/DCCFile/"   stryear   "/"   strmonth   "/"   strSysFileNumber   "/");//MeThod1:从ISS服务器映射文件的绝对路径

       string serverpath=Server.MapPath("~/UserData/DCCFile/"   stryear   "/"   strmonth   "/"   strSysFileNumber   "/");//MeThod2:从ISS服务器映射文件的绝对路径
        string fileFullName = serverpath   filename;//文件的全名
        FileInfo file = new FileInfo(fileFullName);
        if (File.Exists(fileFullName))
        {
            //将文件下载到客户机
            Response.Clear();
            Response.AddHeader("Content-Disposition", "attachment;filename="   Server.UrlEncode(file.Name));
            Response.ContentType = "application/octet-stream";
            Response.Filter.Close(); //Response.Filter 是一个 Stream 对象(表示字节序列的流),Response.Filter.CLose() 表示关闭此流对象并释放相关资源。
            Response.WriteFile(file.FullName);
            Response.End();
        }
        else
        {
            Page.ClientScript.RegisterStartupScript(GetType(), "alert", "<script language='javascript'>alert('下载失败!')</script>");
        }

证实:application/octet-stream 是一种MIME类型,表示可以完毕别的格式的文本下载

Content-disposition 是 MIME 合同的扩张,MIME 左券提醒 MIME 客户代理怎么样展现附加的文本。

大家在支付web系统时偶尔会有以下必要:
可望某类恐怕某已知MIME 类型的文件(譬喻:.gif;.txt;*.htm)能够在探访时弹出“文件下载”对话框
指望以原始文本名(上传时的文件名,举个例子:江苏省政坛1024号文件.doc)提供下载,但服务器上保留的地方却是别的文件名(如125一九八三0948091234_asdf.doc)
可望某文件平素在浏览器上海展览中心示并非弹出文件下载对话框

化解办法是 Response.AddHeader "content-disposition","attachment; filename=fname.ext"

将上述需要举行归自身付诸如下例子代码:
public static void ToDownload(string serverfilpath,string filename)
{
FileStream fileStream = new FileStream(serverfilpath, FileMode.Open);
long fileSize = fileStream.Length;
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename="" UTF_FileName(filename) "";");
////attachment --- 作为附属类小部件下载
////inline --- 在线展开
HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString());
byte[] fileBuffer = new byte[fileSize];
fileStream.Read(fileBuffer, 0, (int)fileSize);
HttpContext.Current.Response.BinaryWrite(fileBuffer);
fileStream.Close();
HttpContext.Current.Response.End();
}

private static string UTF_FileName(string filename)
{
return HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8);
}

UTF_FileName方法 主要为了解决带有非塞尔维亚(Serbia)语/数字名称的难点,比如说文件名称叫“衣明志.doc”,使用该措施顾客端就不会师世 乱码了。功用同地方的Server.UrlEncode

  /**////再次回到读到的日志文件内容
  return output.ToString();
}
四.写入日志文件

  /**////重返读到的日志文件内容
  return output.ToString();
}
四.写入日志文件

/**//// <summary>
/// 写入日志文件
/// </summary>
/// <param ></param>
private void WriteLogFile(string input)

  /**////钦定日志文件的目录
  string fname = Server.MapPath("upedFile") "\logfile.txt";
  /**////定义文件消息指标
  FileInfo finfo = new FileInfo(fname);

/**//// <summary>
/// 写入日志文件
/// </summary>
/// <param ></param>
private void WriteLogFile(string input)

  /**////钦赐日志文件的目录
  string fname = Server.MapPath("upedFile") "\logfile.txt";
  /**////定义文件信息目的
  FileInfo finfo = new FileInfo(fname);

  /**////判定文件是不是留存以及是不是超越2K
  if ( finfo.Exists && finfo.Length > 2048 )
  {
    /**////删除该公文
    finfo.Delete();
  }
  /**////创制只写文件流
  using(FileStream fs = finfo.OpenWrite())
  {
    /**////根据上边创制的公文流创制写数据流
    StreamWriter w = new StreamWriter(fs);

  /**////推断文件是或不是留存以及是或不是超过2K
  if ( finfo.Exists && finfo.Length > 2048 )
  {
    /**////删除该公文
    finfo.Delete();
  }
  /**////制造只写文件流
  using(FileStream fs = finfo.OpenWrite())
  {
    /**////根据上面创立的公文流创制写数据流
    StreamWriter w = new StreamWriter(fs);

    /**////设置写数据流的初阶地方为文件流的终极
    w.BaseStream.Seek(0, SeekOrigin.End);

    /**////设置写数据流的苗子地点为文件流的末尾
    w.BaseStream.Seek(0, SeekOrigin.End);

    w.Write("nLog Entry : ");

    w.Write("nLog Entry : ");

    /**////写入当前系统时间并换行
    w.Write("{0} {1} rn",DateTime.Now.ToLongTimeString(),DateTime.Now.ToLongDateString());

    /**////写入当前系统时间并换行
    w.Write("{0} {1} rn",DateTime.Now.ToLongTimeString(),DateTime.Now.ToLongDateString());

    /**////写入日志内容并换行
    w.Write(input "n");

    /**////写入日志内容并换行
    w.Write(input "n");

    /**////写入------------------------------------“并换行
    w.Write("------------------------------------n");

    /**////写入------------------------------------“并换行
    w.Write("------------------------------------n");

    /**////清空缓冲区内容,并把缓冲区内容写入基础流
    w.Flush();

    /**////清空缓冲区内容,并把缓冲区内容写入基础流
    w.Flush();

    /**////关闭写数据流
    w.Close();
  }
}
五.C#创建HTML文件
/**//// <summary>
/// 创建HTML文件
/// </summary>
private void CreateHtmlFile()

  /**////定义和html标识数目一致的数组
  string[] newContent = new string[5];
  StringBuilder strhtml = new StringBuilder();
  try 
  {
    /**////创建StreamReader对象
    using (StreamReader sr = new StreamReader(Server.MapPath("createHTML") "\template.html")) 
    {
      String oneline;

    /**////关闭写数据流
    w.Close();
  }
}
五.C#创建HTML文件
/**//// <summary>
/// 创建HTML文件
/// </summary>
private void CreateHtmlFile()

  /**////定义和html标识数目一致的数组
  string[] newContent = new string[5];
  StringBuilder strhtml = new StringBuilder();
  try 
  {
    /**////创建StreamReader对象
    using (StreamReader sr = new StreamReader(Server.MapPath("createHTML") "\template.html")) 
    {
      String oneline;

      /**////读取内定的HTML文件模板
      while ((oneline = sr.ReadLine()) != null) 
      {
        strhtml.Append(oneline);
      }
      sr.Close();
    }
  }
  catch(Exception err)
  {
    /**////输出极其新闻
    Response.Write(err.ToString());
  }
  /**////为标识数组赋值
  newContent[0] = txtTitle.Text;//标题
  newContent[1] = "BackColor='#cccfff'";//背景色
  newContent[2] = "#ff0000";//字体颜色
  newContent[3] = "100px";//字体大小
  newContent[4] = txtContent.Text;//首要内容

      /**////读取钦定的HTML文件模板
      while ((oneline = sr.ReadLine()) != null) 
      {
        strhtml.Append(oneline);
      }
      sr.Close();
    }
  }
  catch(Exception err)
  {
    /**////输出极其消息
    Response.Write(err.ToString());
  }
  /**////为标识数组赋值
  newContent[0] = txtTitle.Text;//标题
  newContent[1] = "BackColor='#cccfff'";//背景色
  newContent[2] = "#ff0000";//字体颜色
  newContent[3] = "100px";//字体大小
  newContent[4] = txtContent.Text;//首要内容

  /**////根据上面新的内容生成html文件
  try
  {
    /**////钦赐要转移的HTML文件
    string fname = Server.MapPath("createHTML") "\" DateTime.Now.ToString("yyyymmddhhmmss") ".html";

  /**////依照上边新的剧情生成html文件
  try
  {
    /**////钦点要转换的HTML文件
    string fname = Server.MapPath("createHTML") "\" DateTime.Now.ToString("yyyymmddhhmmss") ".html";

    /**////替换html模版文件里的标识为新的内容
    for(int i=0;i < 5;i )
    {
      strhtml.Replace("$htmlkey[" i "]",newContent[i]);
    }
    /**////成立文件音信指标
    FileInfo finfo = new FileInfo(fname);

    /**////替换html模版文件里的号子为新的剧情
    for(int i=0;i < 5;i )
    {
      strhtml.Replace("$htmlkey[" i "]",newContent[i]);
    }
    /**////创立文件信息指标
    FileInfo finfo = new FileInfo(fname);

    /**////以张开只怕写入的花样创立文件流
    using(FileStream fs = finfo.OpenWrite())
    {
      /**////依照上边创设的文件流创建写数据流
      StreamWriter sw = new StreamWriter(fs,System.Text.Encoding.GetEncoding("GB2312"));

    /**////以打开或许写入的花样创制文件流
    using(FileStream fs = finfo.OpenWrite())
    {
      /**////遵照上边成立的文书流创立写数据流
      StreamWriter sw = new StreamWriter(fs,System.Text.Encoding.GetEncoding("GB2312"));

      /**////把新的剧情写到创设的HTML页面中
      sw.WriteLine(strhtml);
      sw.Flush();
      sw.Close();
    }

      /**////把新的内容写到成立的HTML页面中
      sw.WriteLine(strhtml);
      sw.Flush();
      sw.Close();
    }

    /**////设置顶尖链接的习性
    hyCreateFile.Text = DateTime.Now.ToString("yyyymmddhhmmss") ".html";
    hyCreateFile.NavigateUrl = "createHTML/" DateTime.Now.ToString("yyyymmddhhmmss") ".html";
  }
  catch(Exception err)
  { 
    Response.Write (err.ToString());
  }
}
CreateDirectory方法的利用
using System; 
using System.IO; 

    /**////设置一流链接的性质
    hyCreateFile.Text = DateTime.Now.ToString("yyyymmddhhmmss") ".html";
    hyCreateFile.NavigateUrl = "createHTML/" DateTime.Now.ToString("yyyymmddhhmmss") ".html";
  }
  catch(Exception err)
  { 
    Response.Write (err.ToString());
  }
}
CreateDirectory方法的行使
using System; 
using System.IO; 

class Test 

  public static void Main() 
  { 
    // Specify the directory you want to manipulate. 
    string path = @"c:MyDir"; 

class Test 

  public static void Main() 
  { 
    // Specify the directory you want to manipulate. 
    string path = @"c:MyDir"; 

    try 
    { 
      // Determine whether the directory exists. 
      if (Directory.Exists(path)) 
      { 
        Console.WriteLine("That path exists already."); 
        return; 
      } 

    try 
    { 
      // Determine whether the directory exists. 
      if (Directory.Exists(path)) 
      { 
        Console.WriteLine("That path exists already."); 
        return; 
      } 

      // Try to create the directory. 
      DirectoryInfo di = Directory.CreateDirectory(path); 
      Console.WriteLine("The directory was created successfully at {0}.", Directory.GetCreationTime(path)); 

      // Try to create the directory. 
      DirectoryInfo di = Directory.CreateDirectory(path); 
      Console.WriteLine("The directory was created successfully at {0}.", Directory.GetCreationTime(path)); 

      // Delete the directory. 
      di.Delete(); 
      Console.WriteLine("The directory was deleted successfully."); 
    } 
    catch (Exception e) 
    { 
      Console.WriteLine("The process failed: {0}", e.ToString()); 
    } 
    finally {} 
  } 
}

      // Delete the directory. 
      di.Delete(); 
      Console.WriteLine("The directory was deleted successfully."); 
    } 
    catch (Exception e) 
    { 
      Console.WriteLine("The process failed: {0}", e.ToString()); 
    } 
    finally {} 
  } 
}

 

本文由澳门新萄京官方网站发布于www.8455.com,转载请注明出处:文件流操作,移动文件

关键词: