A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑昱曦 中级黑马   /  2012-11-11 23:49  /  1117 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /// <summary>
  2.         /// 创建文件夹
  3.         /// </summary>
  4.         /// <param name="Path"></param>
  5.         public static void FolderCreate(string Path)
  6.         {
  7.             // 判断目标目录是否存在如果不存在则新建之
  8.             if (!Directory.Exists(Path))
  9.                 Directory.CreateDirectory(Path);
  10.         }
  11.         #endregion
  12.         #region 创建目录
  13.         public static void FileCreate(string Path)
  14.         {
  15.             FileInfo CreateFile = new FileInfo(Path); //创建文件
  16.             if (!CreateFile.Exists)
  17.             {
  18.                 FileStream FS = CreateFile.Create();
  19.                 FS.Close();
  20.             }
  21.         }
  22.         #endregion
  23.         #region 递归删除文件夹目录及文件
  24.         /****************************************
  25.          * 函数名称:DeleteFolder
  26.          * 功能说明:递归删除文件夹目录及文件
  27.          * 参    数:dir:文件夹路径
  28.          * 调用示列:
  29.          *           string dir = Server.MapPath( "test/");
  30.          *           EC.FileObj.DeleteFolder(dir);      
  31.         *****************************************/
  32.         /// <summary>
  33.         /// 递归删除文件夹目录及文件
  34.         /// </summary>
  35.         /// <param name="dir"></param>
  36.         /// <returns></returns>
  37.         public static void DeleteFolder(string dir)
  38.         {
  39.             if (Directory.Exists(dir)) //如果存在这个文件夹删除之
  40.             {
  41.                 foreach (string d in Directory.GetFileSystemEntries(dir))
  42.                 {
  43.                     if (File.Exists(d))
  44.                         File.Delete(d); //直接删除其中的文件                        
  45.                     else
  46.                         DeleteFolder(d); //递归删除子文件夹
  47.                 }
  48.                 Directory.Delete(dir, true); //删除已空文件夹                 
  49.             }
  50.         }
  51.         #endregion
  52.         #region 将指定文件夹下面的所有内容copy到目标文件夹下面 果目标文件夹为只读属性就会报错。
  53.         /****************************************
  54.          * 函数名称:CopyDir
  55.          * 功能说明:将指定文件夹下面的所有内容copy到目标文件夹下面 果目标文件夹为只读属性就会报错。
  56.          * 参    数:srcPath:原始路径,aimPath:目标文件夹
  57.          * 调用示列:
  58.          *           string srcPath = Server.MapPath( "test/");
  59.          *           string aimPath = Server.MapPath( "test1/");
  60.          *           EC.FileObj.CopyDir(srcPath,aimPath);   
  61.         *****************************************/
  62.         /// <summary>
  63.         /// 指定文件夹下面的所有内容copy到目标文件夹下面
  64.         /// </summary>
  65.         /// <param name="srcPath">原始路径</param>
  66.         /// <param name="aimPath">目标文件夹</param>
  67.         public static void CopyDir(string srcPath, string aimPath)
  68.         {
  69.             try
  70.             {
  71.                 // 检查目标目录是否以目录分割字符结束如果不是则添加之
  72.                 if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar)
  73.                     aimPath += Path.DirectorySeparatorChar;
  74.                 // 判断目标目录是否存在如果不存在则新建之
  75.                 if (!Directory.Exists(aimPath))
  76.                     Directory.CreateDirectory(aimPath);
  77.                 // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
  78.                 //如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
  79.                 //string[] fileList = Directory.GetFiles(srcPath);
  80.                 string[] fileList = Directory.GetFileSystemEntries(srcPath);
  81.                 //遍历所有的文件和目录
  82.                 foreach (string file in fileList)
  83.                 {
  84.                     //先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
  85.                     if (Directory.Exists(file))
  86.                         CopyDir(file, aimPath + Path.GetFileName(file));
  87.                     //否则直接Copy文件
  88.                     else
  89.                         File.Copy(file, aimPath + Path.GetFileName(file), true);
  90.                 }
  91.             }
  92.             catch (Exception ee)
  93.             {
  94.                 throw new Exception(ee.ToString());
  95.             }
  96.         }
  97.         #endregion
  98.         #region 获取指定文件夹下所有子目录及文件(树形)
  99.         /****************************************
  100.          * 函数名称:GetFoldAll(string Path)
  101.          * 功能说明:获取指定文件夹下所有子目录及文件(树形)
  102.          * 参    数:Path:详细路径
  103.          * 调用示列:
  104.          *           string strDirlist = Server.MapPath( "templates");      
  105.          *           this.Literal1.Text = EC.FileObj.GetFoldAll(strDirlist);
  106.         *****************************************/
  107.         /// <summary>
  108.         /// 获取指定文件夹下所有子目录及文件
  109.         /// </summary>
  110.         /// <param name="Path">详细路径</param>
  111.         public static string GetFoldAll(string Path)
  112.         {
  113.             string str = "";
  114.             DirectoryInfo thisOne = new DirectoryInfo(Path);
  115.             str = ListTreeShow(thisOne, 0, str);
  116.             return str;
  117.         }
  118.         /// <summary>
  119.         /// 获取指定文件夹下所有子目录及文件函数
  120.         /// </summary>
  121.         /// <param name="theDir">指定目录</param>
  122.         /// <param name="nLevel">默认起始值,调用时,一般为0</param>
  123.         /// <param name="Rn">用于迭加的传入值,一般为空</param>
  124.         /// <returns></returns>
  125.         public static string ListTreeShow(DirectoryInfo theDir, int nLevel, string Rn)//递归目录 文件
  126.         {
  127.             DirectoryInfo[] subDirectories = theDir.GetDirectories();//获得目录
  128.             foreach (DirectoryInfo dirinfo in subDirectories)
  129.             {
  130.                 if (nLevel == 0)
  131.                 {
  132.                     Rn += "├";
  133.                 }
  134.                 else
  135.                 {
  136.                     string _s = "";
  137.                     for (int i = 1; i <= nLevel; i++)
  138.                     {
  139.                         _s += "│ ";
  140.                     }
  141.                     Rn += _s + "├";
  142.                 }
  143.                 Rn += "<b>" + dirinfo.Name.ToString() + "</b>
  144. ";
  145.                 FileInfo[] fileInfo = dirinfo.GetFiles();   //目录下的文件
  146.                 foreach (FileInfo fInfo in fileInfo)
  147.                 {
  148.                     if (nLevel == 0)
  149.                     {
  150.                         Rn += "│ ├";
  151.                     }
  152.                     else
  153.                     {
  154.                         string _f = "";
  155.                         for (int i = 1; i <= nLevel; i++)
  156.                         {
  157.                             _f += "│ ";
  158.                         }
  159.                         Rn += _f + "│ ├";
  160.                     }
  161.                     Rn += fInfo.Name.ToString() + "
  162. ";
  163.                 }
  164.                 Rn = ListTreeShow(dirinfo, nLevel + 1, Rn);

  165.             }
  166.             return Rn;
  167.         }
  168.         /****************************************
  169.          * 函数名称:GetFoldAll(string Path)
  170.          * 功能说明:获取指定文件夹下所有子目录及文件(下拉框形)
  171.          * 参    数:Path:详细路径
  172.          * 调用示列:
  173.          *            string strDirlist = Server.MapPath( "templates");      
  174.          *            this.Literal2.Text = EC.FileObj.GetFoldAll(strDirlist, "tpl","");
  175.         *****************************************/
  176.         /// <summary>
  177.         /// 获取指定文件夹下所有子目录及文件(下拉框形)
  178.         /// </summary>
  179.         /// <param name="Path">详细路径</param>
  180.         /// <param name="DropName">下拉列表名称</param>
  181.         /// <param name="tplPath">默认选择模板名称</param>
  182.         public static string GetFoldAll(string Path,string DropName,string tplPath)
  183.         {
  184.             string strDrop = "<select name=\"" + DropName + "\" id=\"" + DropName + "\"><option value=\"\">--请选择详细模板--</option>";
  185.             string str = "";
  186.             DirectoryInfo thisOne = new DirectoryInfo(Path);
  187.             str = ListTreeShow(thisOne, 0, str,tplPath);
  188.             return strDrop+str+ "</select>";
  189.         }
  190.     }
  191. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

2 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
不错不错!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马