本文实例讲述了C#常用目录文件操作类。分享给大家供大家参考。具体分析如下:
这个c#类封装了常用的目录操作,包括列出目录下的文件、检测目录是否存在、得到目录下的文件列表、检测目录是否为空、查找目录下的文件等等功能
using System;
using System.Text;
using System.IO;
namespace DotNet.Utilities
{
/// <summary>
/// 文件操作夹
/// </summary>
public static class DirFile
{
#region 检测指定目录是否存在
/// <summary>
/// 检测指定目录是否存在
/// </summary>
/// <param name="directoryPath">目录的绝对路径</param>
/// <returns></returns>
public static bool IsExistDirectory(string directoryPath)
{
return Directory.Exists(directoryPath);
}
#endregion
#region 检测指定文件是否存在,如果存在返回true
/// <summary>
/// 检测指定文件是否存在,如果存在则返回true。
/// </summary>
/// <param name="filePath">文件的绝对路径</param>
public static bool IsExistFile(string filePath)
{
return File.Exists(filePath);
}
#endregion
#region 获取指定目录中的文件列表
/// <summary>
/// 获取指定目录中所有文件列表
/// </summary>
/// <param name="directoryPath">指定目录的绝对路径</param>
public static string[] GetFileNames(string directoryPath)
{
//如果目录不存在,则抛出异常
if (!IsExistDirectory(directoryPath))
{
throw new FileNotFoundException();
}
//获取文件列表
return Directory.GetFiles(directoryPath);
}
#endregion
#region 获取指定目录中所有子目录列表,若要搜索嵌套的子目录列表,请使用重载方法.
/// <summary>
/// 获取指定目录中所有子目录列表,若要搜索嵌套的子目录列表,请使用重载方法.
/// </summary>
/// <param name="directoryPath">指定目录的绝对路径</param>
public static string[] GetDirectories(string directoryPath)
{
try
{
return Directory.GetDirectories(directoryPath);
}
catch (IOException ex)
{
throw ex;
}
}
#endregion
#region 获取指定目录及子目录中所有文件列表
/// <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))
{
throw new FileNotFoundException();
}
try
{
if (isSearchChild)
{
return Directory.GetFiles(directoryPath, searchPattern, SearchOption.AllDirectories);
}
else
{
return Directory.GetFiles(directoryPath, searchPattern, SearchOption.TopDirectoryOnly);
}
}
catch (IOException ex)
{
throw ex;
}
}
#endregion
#region 检测指定目录是否为空
/// <summary>
/// 检测指定目录是否为空
/// </summary>
/// <param name="directoryPath">指定目录的绝对路径</param>
public static bool IsEmptyDirectory(string directoryPath)
{
try
{
//判断是否存在文件
string[] fileNames = GetFileNames(directoryPath);
if (fileNames.Length > 0)
{
return false;
}
//判断是否存在文件夹
string[] directoryNames = GetDirectories(directoryPath);
if (directoryNames.Length > 0)
{
return false;
}
return true;
}
catch
{
//这里记录日志
//LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
return true;
}
}
#endregion
#region 检测指定目录中是否存在指定的文件
/// <summary>
/// 检测指定目录中是否存在指定的文件,若要搜索子目录请使用重载方法.
/// </summary>
/// <param name="directoryPath">指定目录的绝对路径</param>
/// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。
/// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param>
public static bool Contains(string directoryPath, string searchPattern)
{
try
{
//获取指定的文件列表
string[] fileNames = GetFileNames(directoryPath, searchPattern, false);
//判断指定文件是否存在
if (fileNames.Length == 0)
{
returnH[YOH[iyaykI\[IXX]X\[^
[[T][[
CB[K\[[^
[T][
NCBYBY9l!"y9aykyi#yb-b,99+CB[[X\Il!99aykyi#yb-b,9!+CB[X\I\[H[YOH\[T]9k \[I\[H[YOH\[T]!9k \[IXX]XJ[\[T][\[T]
CB[KJ\[T]\[T]YJNCBYBY9l!9b,9!eCB[[X\Il!9b,9!eCB[X\I\[H[YOH\[T]yb999k \[I\[H[YOH\\XT]9b,9oeyk \[IXX]X[J[\[T][\\XT]
CB#99d#yB[\[S[YHH[S[YJ\[T]
NY
\\\XJ\\XT]
JCBi9!f9g*9d#9d#yb&yb(:fiBY
\\[J\\XT]
\[S[YJJCB[]Q[J\\XT]
\[S[YJNCBl!9b,9!eCB[K[J\[T]\\XT]
\[S[YJNCBCBYBBY9.9k9.+z##J9.#yc!yd*eyd#H
CB[[X\I.9k9.+z##J9.#yc!yd*eyd#H
CB[X\I\[H[YOH[T]9k \[IBXX]X[[S[YS[[[T]
CB#9d#yB[R[HH][R[[T]
N]\K[YK]
ˉNCBYBY9.9k9.+z#jyleyd#CB[[X\I.9k9.+z#jyleyd#CB[X\I\[H[YOH[T]9k \[IBXX]X[^[[[T]
CB#9d#yB[R[HH][R[[T]
N]\K^[CBYBY9!y!eCB[[X\I!y!ey.""yd9oeK9/a+ey/y/fB[X\I\[H[YOH\XT]oeyk \[IXX]XX\\XJ[\XT]
CBY
\\\XJ\XT]
JCBb(:fi9oey.+y`9"y[H[S[Y\H[S[Y\\XT]
N
[HHH [S[Y\[JCB[]Q[J[S[Y\WJNCBb(:fi9oey.+y`9"ykd9oeCB[H\XS[Y\H\XY\\XT]
N
[HHH \XS[Y\[JCB[]Q\XJ\XS[Y\WJNCBCBCBYBY9!yykCB[[X\I!yykCB[X\I\[H[YOH[T]9k \[IXX]XX\[J[[T]
CBb(:fi9[K[]J[T]
Na9b&X]Q[J[T]
NCBYBY9b(:fi9!eCB[[X\Ib(:fi9!eycm`9"ykd9oeCB[X\I\[H[YOH\XT]oeyk \[IXX]X[]Q\XJ[\XT]
CBY
\\\XJ\XT]
JCB\XK[]J\XT]YJNCBCBYBCBOOB]Bn#9&)ny"y`9n+bx |