网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > .Net编程 > 正文

C#中文件与文件夹相关的操作

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
  1. /// <summary> 
  2. /// 文件有关的操作类 
  3. /// </summary> 
  4. public class FileOperate 
  5.     /// <summary> 
  6.     /// 删除文件 
  7.     /// </summary> 
  8.     /// <param name="FileFullPath">文件的全路径.</param> 
  9.     /// <returns>bool</returns> 
  10.     public bool DeleteFile(string FileFullPath) 
  11.     { 
  12.         if (File.Exists(FileFullPath) == true//用静态类判断文件是否存在 
  13.         { 
  14.             File.SetAttributes(FileFullPath, FileAttributes.Normal); //设置文件的属性为正常(如果文件为只读的话直接删除会报错) 
  15.             File.Delete(FileFullPath); //删除文件 
  16.             return true
  17.         } 
  18.         else  //文件不存在 
  19.         { 
  20.             return false
  21.         } 
  22.     } 
  23.     /// <summary> 
  24.     /// 获取文件名(包含扩展名) 
  25.     /// </summary> 
  26.     /// <param name="FileFullPath">文件全路径</param> 
  27.     /// <returns>string</returns> 
  28.     public string GetFileName(string FileFullPath) 
  29.     { 
  30.         if (File.Exists(FileFullPath) == true
  31.         { 
  32.             FileInfo F = new FileInfo(FileFullPath);  //FileInfo类为提供创建、复制、删除等方法 
  33.             return F.Name;  //获取文件名(包含扩展名) 
  34.         } 
  35.         else 
  36.         { 
  37.             return null
  38.         } 
  39.     } 
  40.     /// <summary> 
  41.     /// 获取文件文件扩展名 
  42.     /// </summary> 
  43.     /// <param name="FileFullPath">文件全路径</param> 
  44.     /// <returns>string</returns> 
  45.     public string GetFileExtension(string FileFullPath) 
  46.     { 
  47.         if (File.Exists(FileFullPath) == true
  48.         { 
  49.             FileInfo F = new FileInfo(FileFullPath); 
  50.             return F.Extension;  //获取文件扩展名(包含".",如:".mp3") 
  51.              
  52.         } 
  53.         else 
  54.         { 
  55.             return null
  56.         } 
  57.     } 
  58.     /// <summary> 
  59.     /// 获取文件名(可包含扩展名) 
  60.     /// </summary> 
  61.     /// <param name="FileFullPath">文件全路径</param> 
  62.     /// <param name="IncludeExtension">是否包含扩展名</param> 
  63.     /// <returns>string</returns> 
  64.     public string GetFileName(string FileFullPath, bool IncludeExtension) 
  65.     { 
  66.         if (File.Exists(FileFullPath) == true
  67.         { 
  68.             FileInfo F = new FileInfo(FileFullPath); 
  69.             if (IncludeExtension == true
  70.             { 
  71.                 return F.Name;   //返回文件名(包含扩展名) 
  72.             } 
  73.             else 
  74.             { 
  75.                 return F.Name.Replace(F.Extension, "");  //把扩展名替换为空字符 
  76.             } 
  77.         } 
  78.         else 
  79.         { 
  80.             return null
  81.         } 
  82.     } 
  83.     /// <summary> 
  84.     /// 根据传来的文件全路径,外部打开文件,默认用系统注册类型关联软件打开 
  85.     /// </summary> 
  86.     /// <param name="FileFullPath">文件的全路径</param> 
  87.     /// <returns>bool</returns> 
  88.     public bool OpenFile(string FileFullPath) 
  89.     { 
  90.         if (File.Exists(FileFullPath) == true
  91.         { 
  92.             System.Diagnostics.Process.Start(FileFullPath);  //打开文件,默认用系统注册类型关联软件打开 
  93.             return true
  94.         } 
  95.         else 
  96.         { 
  97.             return false
  98.         } 
  99.     } 
  100.     /// <summary> 
  101.     /// 获取文件大小 
  102.     /// </summary> 
  103.     /// <param name="FileFullPath">文件全路径</param> 
  104.     /// <returns>string</returns> 
  105.     public string GetFileSize(string FileFullPath) 
  106.     { 
  107.         if (File.Exists(FileFullPath) == true
  108.         { 
  109.             FileInfo F = new FileInfo(FileFullPath); 
  110.             long FL = F.Length; 
  111.             if (FL > (1024 * 1024 * 1024))  //由大向小来判断文件的大小 
  112.             { 
  113.                 return Math.Round((FL + 0.00) / (1024 * 1024 * 1024), 2).ToString() + " GB";  //将双精度浮点数舍入到指定的小数(long类型与double类型运算,结果会是一个double类型) 
  114.             } 
  115.             else if (FL > (1024 * 1024)) 
  116.             { 
  117.                 return Math.Round((FL + 0.00) / (1024 * 1024), 2).ToString() + " MB"
  118.             } 
  119.             else if (FL > 1024) 
  120.             { 
  121.                 return Math.Round((FL + 0.00) / 1024, 2).ToString() + " KB"
  122.             } 
  123.             else 
  124.             { 
  125.                 return FL.ToString(); 
  126.             } 
  127.         } 
  128.         else 
  129.         { 
  130.             return null
  131.         } 
  132.     } 
  133.     /// <summary> 
  134.     /// 文件转换成二进制,返回二进制数组Byte 
  135.     /// </summary> 
  136.     /// <param name="FileFullPath">文件全路径</param> 
  137.     /// <returns>byte 包含文件流的二进制数组</returns> 
  138.     public byte FileToStreamByte(string FileFullPath) 
  139.     { 
  140.         if (File.Exists(FileFullPath) == true
  141.         { 
  142.             FileStream FS = new FileStream(FileFullPath, FileMode.Open); //创建一个文件流 
  143.             byte fileData = new byte[FS.Length];                       //创建一个字节数组,用于保存流 
  144.             FS.Read(fileData, 0, fileData.Length);                       //从流中读取字节块,保存到缓存中 
  145.             FS.Close();                                                  //关闭流(一定得关闭,否则流一直存在) 
  146.             return fileData;                                             //返回字节数组 
  147.         } 
  148.         else 
  149.         { 
  150.             return null
  151.         } 
  152.     } 
  153.     /// <summary> 
  154.     /// 二进制数组Byte生成文件 
  155.     /// </summary> 
  156.     /// <param name="FileFullPath">要生成的文件全路径</param> 
  157.     /// <param name="StreamByte">要生成文件的二进制 Byte 数组</param> 
  158.     /// <returns>bool 是否生成成功</returns> 
  159.     public bool ByteStreamToFile(string FileFullPath, byte StreamByte) 
  160.     { 
  161.         try 
  162.         { 
  163.             if (File.Exists(FileFullPath) == true)  //判断要创建的文件是否存在,若存在则先删除 
  164.             { 
  165.                 File.Delete(FileFullPath); 
  166.             } 
  167.             FileStream FS = new FileStream(FileFullPath, FileMode.OpenOrCreate);  //创建文件流(打开或创建的方式) 
  168.             FS.Write(StreamByte, 0, StreamByte.Length);  //把文件流写到文件中 
  169.             FS.Close(); 
  170.             return true
  171.         } 
  172.         catch 
  173.         { 
  174.             return false
  175.         } 
  176.     } 
  177.     /// <summary> 
  178.     /// 将Xml文件序列化(可起到加密和压缩XML文件的目的) 
  179.     /// </summary> 
  180.     /// <param name="FileFullPath">要序列化的XML文件全路径</param> 
  181.     /// <returns>bool 是否序列化成功</returns> 
  182.     public bool SerializeXml(string FileFullPath)   //序列化: 
  183.     { 
  184.         try 
  185.         { 
  186.             System.Data.DataSet DS = new System.Data.DataSet();  //创建数据集,用来临时存储XML文件 
  187.             DS.ReadXml(FileFullPath);  //将XML文件读入到数据集中 
  188.             FileStream FS = new FileStream(FileFullPath + ".tmp", FileMode.OpenOrCreate);  //创建一个.tmp的临时文件 
  189.             System.Runtime.Serialization.Formatters.Binary.BinaryFormatter FT = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();  //使用二进制格式化程序进行序列化 
  190.             FT.Serialize(FS, DS);  //把数据集序列化后存入文件中 
  191.             FS.Close();  //一定要关闭文件流,否则文件改名会报错(文件正在使用错误) 
  192.             DeleteFile(FileFullPath);  //删除原XML文件 
  193.             File.Move(FileFullPath + ".tmp", FileFullPath);  //改名(把临时文件名改成原来的xml文件名) 
  194.             return true
  195.         } 
  196.         catch 
  197.         { 
  198.             return false
  199.         } 
  200.     } 
  201.     /// <summary> 
  202.     /// 反序列化XML文件 
  203.     /// </summary> 
  204.     /// <param name="FileFullPath">要反序列化XML文件的全路径</param> 
  205.     /// <returns>bool 是否反序列化XML文件</returns> 
  206.     public bool DeSerializeXml(string FileFullPath) 
  207.     { 
  208.         FileStream FS = new FileStream(FileFullPath, FileMode.Open);  //打开XML文件流 
  209.         System.Runtime.Serialization.Formatters.Binary.BinaryFormatter FT = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();  //使用二进制格式化程序进行序列化 
  210.         ((System.Data.DataSet)FT.Deserialize(FS)).WriteXml(FileFullPath + ".tmp");  //把文件反序列化后存入.tmp临时文件中 
  211.         FS.Close();  //关闭并释放流 
  212.         DeleteFile(FileFullPath);  //删除原文件 
  213.         File.Move(FileFullPath + ".tmp", FileFullPath);  //改名(把临时文件改成原来的xml文件) 
  214.         return true
  215.     } 
  216. /// <summary> 
  217. /// 与文件夹有关的操作类 
  218. /// </summary> 
  219. public class DirOperate 
  220.     public enum OperateOption 
  221.     { 
  222.         /// <summary> 
  223.         /// 当被创建的文件夹存在时,先删除该文件夹 
  224.         /// </summary> 
  225.         ExistDelete, 
  226.         /// <summary> 
  227.         /// 当文件夹存在时,直接返回,不进行其它操作 
  228.         /// </summary> 
  229.         ExistReturn 
  230.     } 
  231.     /// <summary> 
  232.     /// 创建文件夹 
  233.     /// </summary> 
  234.     /// <param name="DirFullPath">要创建的文件夹全路径</param> 
  235.     /// <param name="Option">创建文件夹时的操作选项</param> 
  236.     /// <returns>bool 是否创建成功</returns> 
  237.     public bool CreateDir(string DirFullPath, OperateOption Option) 
  238.     { 
  239.         try 
  240.         { 
  241.             if (Directory.Exists(DirFullPath) == false)  //判断文件夹是否存在 
  242.             { 
  243.                 Directory.CreateDirectory(DirFullPath); 
  244.             } 
  245.             else if (Option == OperateOption.ExistDelete)  //如果存在且选项为“存在删除” 
  246.             { 
  247.                 Directory.Delete(DirFullPath);  //删除目录,并删除此目录下的所以子目录 
  248.                 Directory.CreateDirectory(DirFullPath);  //创建目录 
  249.             } 
  250.             return true
  251.         } 
  252.         catch 
  253.         { 
  254.             return false
  255.         } 
  256.     } 
  257.     public bool DeleteDir(string DirFullPath) 
  258.     { 
  259.         if (Directory.Exists(DirFullPath) == true
  260.         { 
  261.             Directory.Delete(DirFullPath, true); 
  262.             return true
  263.         } 
  264.         else 
  265.         { 
  266.             return false
  267.         }         
  268.     } 
  269.     /// <summary> 
  270.     /// 得到当前文件夹中所有文件列表 
  271.     /// </summary> 
  272.     /// <param name="DirFullPath">文件夹全路径</param> 
  273.     /// <returns>string 文件列表</returns> 
  274.     public string GetDirFiles(string DirFullPath) 
  275.     { 
  276.         if (Directory.Exists(DirFullPath) == true
  277.         { 
  278.             string s = Directory.GetFiles(DirFullPath, "*.*", SearchOption.TopDirectoryOnly);  //获取当前目录下的所有文件 
  279.             return s; 
  280.         } 
  281.         else 
  282.         { 
  283.             return null
  284.         } 
  285.     } 
  286.     /// <summary> 
  287.     /// 得到当前文件夹及下级文件夹中所有文件列表 
  288.     /// </summary> 
  289.     /// <param name="DirFullPath">文件夹全路径</param> 
  290.     /// <param name="SO">搜索选项</param> 
  291.     /// <returns>string 文件列表</returns> 
  292.     public string GetDirFiles(string DirFullPath, SearchOption SO) 
  293.     { 
  294.         if (Directory.Exists(DirFullPath) == true
  295.         { 
  296.             string s = Directory.GetFiles(DirFullPath, "*.*", SearchOption.AllDirectories);  //获取当前目录下的所有文件(包含子文件夹中的文件) 
  297.             return s; 
  298.         } 
  299.         else 
  300.         { 
  301.             return null
  302.         } 
  303.     } 
  304.     /// <summary> 
  305.     /// 得到当前文件夹中指定文件类型[扩展名]文件列表 
  306.     /// </summary> 
  307.     /// <param name="DirFullPath">文件夹的全路径</param> 
  308.     /// <param name="SearchPattern">查找哪种类型的文件</param> 
  309.     /// <returns>string 文件列表</returns> 
  310.     public string GetDirFiles(string DirFullPath, string SearchPattern) 
  311.     { 
  312.         if (Directory.Exists(DirFullPath) == true
  313.         { 
  314.             string s = Directory.GetFiles(DirFullPath, SearchPattern);  //获取当前目录下指定文件类型的文件列表 
  315.             return s; 
  316.         } 
  317.         else 
  318.         { 
  319.             return null
  320.         } 
  321.     } 
  322.     /// <summary> 
  323.     /// 得到当前文件夹及下级文件夹中指定文件类型[扩展名]文件列表 
  324.     /// </summary> 
  325.     /// <param name="DirFullPath">目录全路径</param> 
  326.     /// <param name="SearchPattern">查找哪种类型的文件</param> 
  327.     /// <param name="SO">搜索选项</param> 
  328.     /// <returns>string 文件列表</returns> 
  329.     public string GetDirFiles(string DirFullPath, string SearchPattern, SearchOption SO) 
  330.     { 
  331.         if (Directory.Exists(DirFullPath) == true
  332.         { 
  333.             string s = Directory.GetFiles(DirFullPath, SearchPattern, SO);  //获取当前目录下的文件 
  334.             return s; 
  335.         } 
  336.         else 
  337.         { 
  338.             return null
  339.         } 
  340.     } 
设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师