C#文件操作类.docx
- 文档编号:4686294
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:20
- 大小:17.87KB
C#文件操作类.docx
《C#文件操作类.docx》由会员分享,可在线阅读,更多相关《C#文件操作类.docx(20页珍藏版)》请在冰豆网上搜索。
C#文件操作类
/**
文件操作类
**/
#region引用命名空间
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.IO;
#endregion
namespaceCommonUtilities
{
///
///文件操作类
///
publicclassFileHelper
{
#region检测指定目录是否存在
///
///检测指定目录是否存在
///
///
publicstaticboolIsExistDirectory(stringdirectoryPath)
{
returnDirectory.Exists(directoryPath);
}
#endregion
#region检测指定文件是否存在
///
///检测指定文件是否存在,如果存在则返回true。
///
///
publicstaticboolIsExistFile(stringfilePath)
{
returnFile.Exists(filePath);
}
#endregion
#region检测指定目录是否为空
///
///检测指定目录是否为空
///
///
publicstaticboolIsEmptyDirectory(stringdirectoryPath)
{
try
{
//判断是否存在文件
string[]fileNames=GetFileNames(directoryPath);
if(fileNames.Length>0)
{
returnfalse;
}
//判断是否存在文件夹
string[]directoryNames=GetDirectories(directoryPath);
if(directoryNames.Length>0)
{
returnfalse;
}
returntrue;
}
catch(Exceptionex)
{
LogHelper.WriteTraceLog(TraceLogLevel.Error,ex.Message);
returntrue;
}
}
#endregion
#region检测指定目录中是否存在指定的文件
///
///检测指定目录中是否存在指定的文件,若要搜索子目录请使用重载方法.
///
///
///
"代表1个字符。
///范例:
"Log*.xml"表示搜索所有以Log开头的Xml文件。
publicstaticboolContains(stringdirectoryPath,stringsearchPattern)
{
try
{
//获取指定的文件列表
string[]fileNames=GetFileNames(directoryPath,searchPattern,false);
//判断指定文件是否存在
if(fileNames.Length==0)
{
returnfalse;
}
else
{
returntrue;
}
}
catch(Exceptionex)
{
LogHelper.WriteTraceLog(TraceLogLevel.Error,ex.Message);
returnfalse;
}
}
///
///检测指定目录中是否存在指定的文件
///
///
///
"代表1个字符。
///范例:
"Log*.xml"表示搜索所有以Log开头的Xml文件。
///
publicstaticboolContains(stringdirectoryPath,stringsearchPattern,boolisSearchChild)
{
try
{
//获取指定的文件列表
string[]fileNames=GetFileNames(directoryPath,searchPattern,true);
//判断指定文件是否存在
if(fileNames.Length==0)
{
returnfalse;
}
else
{
returntrue;
}
}
catch(Exceptionex)
{
LogHelper.WriteTraceLog(TraceLogLevel.Error,ex.Message);
returnfalse;
}
}
#endregion
#region创建一个目录
///
///创建一个目录
///
///
publicstaticvoidCreateDirectory(stringdirectoryPath)
{
//如果目录不存在则创建该目录
if(!
IsExistDirectory(directoryPath))
{
Directory.CreateDirectory(directoryPath);
}
}
#endregion
#region创建一个文件
///
///创建一个文件。
///
///
publicstaticvoidCreateFile(stringfilePath)
{
try
{
//如果文件不存在则创建该文件
if(!
IsExistFile(filePath))
{
//创建一个FileInfo对象
FileInfofile=newFileInfo(filePath);
//创建文件
FileStreamfs=file.Create();
//关闭文件流
fs.Close();
}
}
catch(Exceptionex)
{
LogHelper.WriteTraceLog(TraceLogLevel.Error,ex.Message);
throwex;
}
}
///
///创建一个文件,并将字节流写入文件。
///
///
///
publicstaticvoidCreateFile(stringfilePath,byte[]buffer)
{
try
{
//如果文件不存在则创建该文件
if(!
IsExistFile(filePath))
{
//创建一个FileInfo对象
FileInfofile=newFileInfo(filePath);
//创建文件
FileStreamfs=file.Create();
//写入二进制流
fs.Write(buffer,0,buffer.Length);
//关闭文件流
fs.Close();
}
}
catch(Exceptionex)
{
LogHelper.WriteTraceLog(TraceLogLevel.Error,ex.Message);
throwex;
}
}
#endregion
#region获取文本文件的行数
///
///获取文本文件的行数
///
///
publicstaticintGetLineCount(stringfilePath)
{
//将文本文件的各行读到一个字符串数组中
string[]rows=File.ReadAllLines(filePath);
//返回行数
returnrows.Length;
}
#endregion
#region获取一个文件的长度
///
///获取一个文件的长度,单位为Byte
///
///
publicstaticintGetFileSize(stringfilePath)
{
//创建一个文件对象
FileInfofi=newFileInfo(filePath);
//获取文件的大小
return(int)fi.Length;
}
///
///获取一个文件的长度,单位为KB
///
///
publicstaticdoubleGetFileSizeByKB(stringfilePath)
{
//创建一个文件对象
FileInfofi=newFileInfo(filePath);
//获取文件的大小
returnConvertHelper.ToDouble(ConvertHelper.ToDouble(fi.Length)/1024,1);
}
///
///获取一个文件的长度,单位为MB
///
///
publicstaticdoubleGetFileSizeByMB(stringfilePath)
{
//创建一个文件对象
FileInfofi=newFileInfo(filePath);
//获取文件的大小
returnConvertHelper.ToDouble(ConvertHelper.ToDouble(fi.Length)/1024/1024,1);
}
#endregion
#region获取指定目录中的文件列表
///
///获取指定目录中所有文件列表
///
///
publicstaticstring[]GetFileNames(stringdirectoryPath)
{
//如果目录不存在,则抛出异常
if(!
IsExistDirectory(directoryPath))
{
thrownewFileNotFoundException();
}
//获取文件列表
returnDirectory.GetFiles(directoryPath);
}
///
///获取指定目录及子目录中所有文件列表
///
///
///
"代表1个字符。
///范例:
"Log*.xml"表示搜索所有以Log开头的Xml文件。
///
publicstaticstring[]GetFileNames(stringdirectoryPath,stringsearchPattern,boolisSearchChild)
{
//如果目录不存在,则抛出异常
if(!
IsExistDirectory(directoryPath))
{
thrownewFileNotFoundException();
}
try
{
if(isSearchChild)
{
returnDirectory.GetFiles(directoryPath,searchPattern,SearchOption.AllDirectories);
}
else
{
returnDirectory.GetFiles(directoryPath,searchPattern,SearchOption.TopDirectoryOnly);
}
}
catch(IOExceptionex)
{
throwex;
}
}
#endregion
#region获取指定目录中的子目录列表
///
///获取指定目录中所有子目录列表,若要搜索嵌套的子目录列表,请使用重载方法.
///
///
publicstaticstring[]GetDirectories(stringdirectoryPath)
{
try
{
returnDirectory.GetDirectories(directoryPath);
}
catch(IOExceptionex)
{
throwex;
}
}
///
///获取指定目录及子目录中所有子目录列表
///
///
///
"代表1个字符。
///范例:
"Log*.xml"表示搜索所有以Log开头的Xml文件。
///
publicstaticstring[]GetDirectories(stringdirectoryPath,stringsearchPattern,boolisSearchChild)
{
try
{
if(isSearchChild)
{
returnDirectory.GetDirectories(directoryPath,searchPattern,SearchOption.AllDirectories);
}
else
{
returnDirectory.GetDirectories(directoryPath,searchPattern,SearchOption.TopDirectoryOnly);
}
}
catch(IOExceptionex)
{
throwex;
}
}
#endregion
#region向文本文件写入内容
///
///向文本文件中写入内容
///
///
///
publicstaticvoidWriteText(stringfilePath,stringcontent)
{
//向文件写入内容
File.WriteAllText(filePath,content);
}
#endregion
#region向文本文件的尾部追加内容
///
///向文本文件的尾部追加内容
///
///
///
publicstaticvoidAppendText(stringfilePath,stringcontent)
{
File.AppendAllText(filePath,content);
}
#endregion
#region将现有文件的内容复制到新文件中
///
///将源文件的内容复制到目标文件中
///
///
///
publicstaticvoidCopy(stringsourceFilePath,stringdestFilePath)
{
File.Copy(sourceFilePath,destFilePath,true);
}
#endregion
#region将文件移动到指定目录
///
///将文件移动到指定目录
///
///
///
publicstaticvoidMove(stringsourceFilePath,stringdescDirectoryPath)
{
//获取源文件的名称
stringsourceFileName=GetFileName(sourceFilePath);
if(IsExistDirectory(descDirectoryPath))
{
//如果目标中存在同名文件,则删除
if(IsExistFile(descDirectoryPath+"\\"+sourceFileName))
{
DeleteFile(descDirectoryPath+"\\"+sourceFileName);
}
//将文件移动到指定目录
File.Move(sourceFilePath,descDirectoryPath+"\\"+sourceFileName);
}
}
#endregion
#region将流读取到缓冲区中
///
///将流读取到缓冲区中
///
///
publicstaticbyte[]StreamToBytes(Streamstream)
{
try
{
//创建缓冲区
byte[]buffer=newbyte[stream.Length];
//读取流
stream.Read(buffer,0,ConvertHelper.ToInt32(stream.Length));
//返回流
returnbuffer;
}
catch(Exceptionex)
{
LogHelper.WriteTraceLog(TraceLogLevel.Error,ex.Message);
throwex;
}
finally
{
//关闭流
stream.Close();
}
}
#endregion
#region将文件读取到缓冲区中
///
///将文件读取到缓冲区中
///
///
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 文件 操作