马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
代码示例
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企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |