.Net 6.0--通用资助类--FileHelper

[复制链接]
发表于 2026-2-1 05:23:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
代码示例
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace VW.API.Common.Utils
{  
     /// <summary>
     /// FileHelper 的择要分析:文件(夹)资助类
     /// </summary>
     public static class FileHelper
     {  
         #region 获取指定目次中的文件列表
         /// <summary>  
         /// 获取指定目次中全部文件列表  
         /// </summary>  
         /// <param name="directoryPath">指定目次的绝对路径</param>         
         public static string[] GetFileNames(string directoryPath)
         {  
             try
             {  
                 //假如目次不存在,则抛出非常  
                 if (!IsExistDirectory(directoryPath))
                 {  
                     Directory.CreateDirectory(directoryPath);
                 }
                 //获取文件列表  
                 return Directory.GetFiles(directoryPath);
             }
             catch (Exception)
             {  
                 return new string[] { };
             }
         }
         /// <summary>  
         /// 获取指定目次及子目次中全部文件列表  
         /// </summary>  
         /// <param name="directoryPath">指定目次的绝对路径</param>  
         /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。  
         /// 范例:"Log*.xml"表现搜索全部以Log开头的Xml文件。</param>  
         /// <param name="isSearchChild">是否搜索子目次</param>  
         public static string[] GetFileNames(string directoryPath, string searchPattern, bool isSearchChild)
         {  
             //假如目次不存在,则抛出非常  
             if (!IsExistDirectory(directoryPath))
             {  
                 return new string[] { };
             }
             try
             {  
                 return Directory.GetFiles(directoryPath, searchPattern, isSearchChild ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly);
             }
             catch
             {  
                 return new string[] { };
             }
         }
         #endregion
         #region 获取指定目次中的子目次列表
         /// <summary>  
         /// 获取指定目次中全部子目次列表,若要搜索嵌套的子目次列表,请利用重载方法.  
         /// </summary>  
         /// <param name="directoryPath">指定目次的绝对路径</param>         
         public static string[] GetDirectories(string directoryPath)
         {  
             try
             {  
                 if (!IsExistDirectory(directoryPath))
                     return new string[] { };
                 else
                     return Directory.GetDirectories(directoryPath);
             }
             catch (Exception) { throw; }
         }
         /// <summary>  
         /// 获取指定目次及子目次中全部子目次列表  
         /// </summary>  
         /// <param name="directoryPath">指定目次的绝对路径</param>  
         /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。  
         /// 范例:"Log*.xml"表现搜索全部以Log开头的Xml文件。</param>  
         /// <param name="isSearchChild">是否搜索子目次</param>  
         public static string[] GetDirectories(string directoryPath, string searchPattern, bool isSearchChild)
         {  
             try
             {  
                 return Directory.GetDirectories(directoryPath, searchPattern, isSearchChild ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly);
             }
             catch
             {  
                 throw null;
             }
         }
         #endregion
         #region 从目次的绝对路径中获取文件夹名
         /// <summary>  
         /// 从目次的绝对路径中获取文件夹名  
         /// </summary>  
         /// <param name="directoryPath">文件夹的绝对路径</param>         
         public static string GetDirectoryName(string directoryPath)
         {  
             //获取文件的名称  
             DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);
             return directoryInfo.Name;
         }
         #endregion
         #region 获取文件夹的创建时间
         /// <summary>  
         /// 获取文件夹的创建时间  
         /// </summary>  
         /// <param name="directoryPath">文件夹的绝对路径</param>         
         public static DateTime GetDirectoryCreateTime(string directoryPath)
         {  
             //获取文件夹的创建时间  
             DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);
             return directoryInfo.CreationTime;
         }
         #endregion
         #region 获取文件的创建时间
         /// <summary>  
         /// 获取文件的创建时间
         /// </summary>  
         /// <param name="filePath">文件的绝对路径</param>         
         public static DateTime GetFileCreateTime(string filePath)
         {  
             //获取文件的创建时间
             FileInfo fileInfo = new FileInfo(filePath);
             return fileInfo.CreationTime;
         }
         #endregion
         #region 获取一个文件的长度
         /// <summary>  
         /// 获取一个文件的长度,单元为Byte  
         /// </summary>  
         /// <param name="filePath">文件的绝对路径</param>         
         public static long GetFileSize(string filePath)
         {  
             try
             {  
                 //创建一个文件对象  
                 FileInfo fi = new FileInfo(filePath);
                 //获取文件的巨细  
                 return (long)fi.Length;
             }
             catch (Exception) { throw; }
         }
         /// <summary>  
         /// 获取一个文件的长度,单元为KB  
         /// </summary>  
         /// <param name="filePath">文件的路径</param>         
         public static double GetFileSizeByKB(string filePath)
         {  
             try
             {  
                 //创建一个文件对象  
                 FileInfo fi = new FileInfo(filePath);
                 long size = fi.Length / 1024;
                 //获取文件的巨细  
                 return double.Parse(size.ToString());
             }
             catch (Exception) { throw; }
         }
         /// <summary>  
         /// 获取一个文件的长度,单元为MB  
         /// </summary>  
         /// <param name="filePath">文件的路径</param>         
         public static double GetFileSizeByMB(string filePath)
         {  
             try
             {  
                 //创建一个文件对象  
                 FileInfo fi = new FileInfo(filePath);
                 long size = fi.Length / 1024 / 1024;
                 //获取文件的巨细  
                 return double.Parse(size.ToString());
             }
             catch (Exception) { throw; }
         }
         #endregion
         #region 获取一个文件夹的长度
         /// <summary>
         /// 获取一个文件夹的长度
         /// </summary>
         /// <param name="dirPath">路径</param>
         /// <returns></returns>
         public static long GetDirectoryLength(string dirPath)
         {  
             try
             {  
                 long len = 0;
                 //界说一个DirectoryInfo对象
                 DirectoryInfo di = new DirectoryInfo(dirPath);
                 //通过GetFiles方法,获取di目次中的全部文件的巨细
                 foreach (FileInfo fi in di.GetFiles())
                 {  
                     len += fi.Length;
                 }
                 //获取di中全部的文件夹,并存到一个新的对象数组中,以举行递归
                 DirectoryInfo[] dis = di.GetDirectories();
                 if (dis.Length > 0)
                 {  
                     for (int i = 0; i < dis.Length; i++)
                     {  
                         len += GetDirectoryLength(dis.FullName);
                     }
                 }
                 return len;
             }
             catch (Exception) { throw; }
         }
         #endregion
         #region 文件重定名
         /// <summary>  
         /// 文件重定名  
         /// </summary>  
         /// <param name="sourceFilePath">源文件的绝对路径</param>  
         /// <param name="destFilePath">目标文件的绝对路径</param>  
         public static void FileRename(string sourceFilePath, string destFilePath)
         {  
             try
             {  
                 if (IsExistFile(sourceFilePath))

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表