今天在網上看了一個文件操作類
/**
文件操作類
**/
#region 引用命名空間
using System;
using System
using System
using System
#endregion
namespace CommonUtilities
{
/// <summary>
/// 文件操作類
/// </summary>
public class FileHelper
{
#region 檢測指定目錄是否存在
/// <summary>
/// 檢測指定目錄是否存在
/// </summary>
/// <param name=
public static bool IsExistDirectory( string directoryPath )
{
return Directory
}
#endregion
#region 檢測指定文件是否存在
/// <summary>
/// 檢測指定文件是否存在
/// </summary>
/// <param name=
public static bool IsExistFile( string filePath )
{
return File
}
#endregion
#region 檢測指定目錄是否為空
/// <summary>
/// 檢測指定目錄是否為空
/// </summary>
/// <param name=
public static bool IsEmptyDirectory( string directoryPath )
{
try
{
//判斷是否存在文件
string[] fileNames = GetFileNames( directoryPath )
if ( fileNames
{
return false;
}
//判斷是否存在文件夾
string[] directoryNames = GetDirectories( directoryPath )
if ( directoryNames
{
return false;
}
return true;
}
catch ( Exception ex )
{
LogHelper
return true;
}
}
#endregion
#region 檢測指定目錄中是否存在指定的文件
/// <summary>
/// 檢測指定目錄中是否存在指定的文件
/// </summary>
/// <param name=
/// <param name=
/// 范例
public static bool Contains( string directoryPath
{
try
{
//獲取指定的文件列表
string[] fileNames = GetFileNames( directoryPath
//判斷指定文件是否存在
if ( fileNames
{
return false;
}
else
{
return true;
}
}
catch ( Exception ex )
{
LogHelper
return false;
}
}
/// <summary>
/// 檢測指定目錄中是否存在指定的文件
/// </summary>
/// <param name=
/// <param name=
/// 范例
/// <param name=
public static bool Contains( string directoryPath
{
try
{
//獲取指定的文件列表
string[] fileNames = GetFileNames( directoryPath
//判斷指定文件是否存在
if ( fileNames
{
return false;
}
else
{
return true;
}
}
catch ( Exception ex )
{
LogHelper
return false;
}
}
#endregion
#region 創建一個目錄
/// <summary>
/// 創建一個目錄
/// </summary>
/// <param name=
public static void CreateDirectory( string directoryPath )
{
//如果目錄不存在則創建該目錄
if ( !IsExistDirectory( directoryPath ) )
{
Directory
}
}
#endregion
#region 創建一個文件
/// <summary>
/// 創建一個文件
/// </summary>
/// <param name=
public static void CreateFile( string filePath )
{
try
{
//如果文件不存在則創建該文件
if ( !IsExistFile( filePath ) )
{
//創建一個FileInfo對象
FileInfo file = new FileInfo( filePath )
//創建文件
FileStream fs = file
//關閉文件流
fs
}
}
catch ( Exception ex )
{
LogHelper
throw ex;
}
}
/// <summary>
/// 創建一個文件
/// </summary>
/// <param name=
/// <param name=
public static void CreateFile( string filePath
{
try
{
//如果文件不存在則創建該文件
if ( !IsExistFile( filePath ) )
{
//創建一個FileInfo對象
FileInfo file = new FileInfo( filePath )
//創建文件
FileStream fs = file
//寫入二進制流
fs
//關閉文件流
fs
}
}
catch ( Exception ex )
{
LogHelper
throw ex;
}
}
#endregion
#region 獲取文本文件的行數
/// <summary>
/// 獲取文本文件的行數
/// </summary>
/// <param name=
public static int GetLineCount( string filePath )
{
//將文本文件的各行讀到一個字符串數組中
string[] rows = File
//返回行數
return rows
}
#endregion
#region 獲取一個文件的長度
/// <summary>
/// 獲取一個文件的長度
/// </summary>
/// <param name=
public static int GetFileSize( string filePath )
{
//創建一個文件對象
FileInfo fi = new FileInfo( filePath )
//獲取文件的大小
return (int)fi
}
/// <summary>
/// 獲取一個文件的長度
/// </summary>
/// <param name=
public static double GetFileSizeByKB( string filePath )
{
//創建一個文件對象
FileInfo fi = new FileInfo( filePath )
//獲取文件的大小
return ConvertHelper
}
/// <summary>
/// 獲取一個文件的長度
/// </summary>
/// <param name=
public static double GetFileSizeByMB( string filePath )
{
//創建一個文件對象
FileInfo fi = new FileInfo( filePath )
//獲取文件的大小
return ConvertHelper
}
#endregion
#region 獲取指定目錄中的文件列表
/// <summary>
/// 獲取指定目錄中所有文件列表
/// </summary>
/// <param name=
public static string[] GetFileNames( string directoryPath )
{
//如果目錄不存在
if ( !IsExistDirectory( directoryPath ) )
{
throw new FileNotFoundException()
}
//獲取文件列表
return Directory
}
/// <summary>
/// 獲取指定目錄及子目錄中所有文件列表
/// </summary>
/// <param name=
/// <param name=
/// 范例
/// <param name=
public static string[] GetFileNames( string directoryPath
{
//如果目錄不存在
if ( !IsExistDirectory( directoryPath ) )
{
throw new FileNotFoundException()
}
try
{
if ( isSearchChild )
{
return Directory
}
else
{
return Directory
}
}
catch ( IOException ex )
{
throw ex;
}
}
#endregion
#region 獲取指定目錄中的子目錄列表
/// <summary>
/// 獲取指定目錄中所有子目錄列表
/// </summary>
/// <param name=
public static string[] GetDirectories( string directoryPath )
{
try
{
return Directory
}
catch ( IOException ex )
{
throw ex;
}
}
/// <summary>
/// 獲取指定目錄及子目錄中所有子目錄列表
/// </summary>
/// <param name=
/// <param name=
/// 范例
/// <param name=
public static string[] GetDirectories( string directoryPath
{
try
{
if ( isSearchChild )
{
return Directory
}
else
{
return Directory
}
}
catch ( IOException ex )
{
throw ex;
}
}
#endregion
#region 向文本文件寫入內容
/// <summary>
/// 向文本文件中寫入內容
/// </summary>
/// <param name=
/// <param name=
public static void WriteText( string filePath
{
//向文件寫入內容
File
}
#endregion
#region 向文本文件的尾部追加內容
/// <summary>
/// 向文本文件的尾部追加內容
/// </summary>
/// <param name=
/// <param name=
public static void AppendText( string filePath
{
File
}
#endregion
#region 將現有文件的內容復制到新文件中
/// <summary>
/// 將源文件的內容復制到目標文件中
/// </summary>
/// <param name=
/// <param name=
public static void Copy( string sourceFilePath
{
File
}
#endregion
#region 將文件移動到指定目錄
/// <summary>
/// 將文件移動到指定目錄
/// </summary>
/// <param name=
/// <param name=
public static void Move( string sourceFilePath
{
//獲取源文件的名稱
string sourceFileName = GetFileName( sourceFilePath )
if ( IsExistDirectory( descDirectoryPath ) )
{
//如果目標中存在同名文件
if ( IsExistFile( descDirectoryPath +
{
DeleteFile( descDirectoryPath +
}
//將文件移動到指定目錄
File
}
}
#endregion
#region 將流讀取到緩沖區中
/// <summary>
/// 將流讀取到緩沖區中
/// </summary>
/// <param name=
public static byte[] StreamToBytes( Stream stream )
{
try
{
//創建緩沖區
byte[] buffer = new byte[stream
//讀取流
stream
//返回流
return buffer;
}
catch ( Exception ex )
{
LogHelper
throw ex;
}
finally
{
//關閉流
stream
}
}
#endregion
#region 將文件讀取到緩沖區中
/// <summary>
/// 將文件讀取到緩沖區中
/// </summary>
/// <param name=
public static byte[] FileToBytes( string filePath )
{
//獲取文件的大小
int fileSize = GetFileSize( filePath )
//創建一個臨時緩沖區
byte[] buffer = new byte[fileSize];
//創建一個文件流
FileInfo fi = new FileInfo( filePath )
FileStream fs = fi
try
{
//將文件流讀入緩沖區
fs
return buffer;
}
catch ( IOException ex )
{
LogHelper
throw ex;
}
finally
{
//關閉文件流
fs
}
}
#endregion
#region 將文件讀取到字符串中
/// <summary>
/// 將文件讀取到字符串中
/// </summary>
/// <param name=
public static string FileToString( string filePath )
{
return FileToString( filePath
}
/// <summary>
/// 將文件讀取到字符串中
/// </summary>
/// <param name=
/// <param name=
public static string FileToString( string filePath
{
//創建流讀取器
StreamReader reader = new StreamReader( filePath
try
{
//讀取流
return reader
}
catch ( Exception ex )
{
LogHelper
throw ex;
}
finally
{
//關閉流讀取器
reader
}
}
#endregion
#region 從文件的絕對路徑中獲取文件名( 包含擴展名 )
/// <summary>
/// 從文件的絕對路徑中獲取文件名( 包含擴展名 )
/// </summary>
/// <param name=
public static string GetFileName( string filePath )
{
//獲取文件的名稱
FileInfo fi = new FileInfo( filePath )
return fi
}
#endregion
#region 從文件的絕對路徑中獲取文件名( 不包含擴展名 )
/// <summary>
/// 從文件的絕對路徑中獲取文件名( 不包含擴展名 )
/// </summary>
/// <param name=
public static string GetFileNameNoExtension( string filePath )
{
//獲取文件的名稱
FileInfo fi = new FileInfo( filePath )
return fi
}
#endregion
#region 從文件的絕對路徑中獲取擴展名
/// <summary>
/// 從文件的絕對路徑中獲取擴展名
/// </summary>
/// <param name=
public static string GetExtension( string filePath )
{
//獲取文件的名稱
FileInfo fi = new FileInfo( filePath )
return fi
}
#endregion
#region 清空指定目錄
/// <summary>
/// 清空指定目錄下所有文件及子目錄
/// </summary>
/// <param name=
public static void ClearDirectory( string directoryPath )
{
if ( IsExistDirectory( directoryPath ) )
{
//刪除目錄中所有的文件
string[] fileNames = GetFileNames( directoryPath )
for ( int i =
{
DeleteFile( fileNames[i] )
}
//刪除目錄中所有的子目錄
string[] directoryNames = GetDirectories( directoryPath )
for ( int i =
{
DeleteDirectory( directoryNames[i] )
}
}
}
#endregion
#region 清空文件內容
/// <summary>
/// 清空文件內容
/// </summary>
/// <param name=
public static void ClearFile( string filePath )
{
//刪除文件
File
//重新創建該文件
CreateFile( filePath )
}
#endregion
#region 刪除指定文件
/// <summary>
/// 刪除指定文件
/// </summary>
/// <param name=
public static void DeleteFile( string filePath )
{
if ( IsExistFile( filePath ) )
{
File
}
}
#endregion
#region 刪除指定目錄
/// <summary>
/// 刪除指定目錄及其所有子目錄
/// </summary>
/// <param name=
public static void DeleteDirectory( string directoryPath )
{
if ( IsExistDirectory( directoryPath ) )
{
Directory
}
}
#endregion
}
}
From:http://tw.wingwit.com/Article/program/net/201311/12996.html