Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)

更新时间:2022-11-09 22:43:22 阅读: 评论:0


2022年11月9日发
(作者:2017日历打印版)

using System;

using ;

using uration;

using ;

using ty;

using ;

using trols;

using ts;

using ntrols;

using ;

using ;



namespace EC

{

///



/// FileObj 的摘要说明

///


public class FileObj

{

#region 构造函数

private bool _alreadyDispo = fal;

public FileObj()

{

//

// TODO: 在此处添加构造函数逻辑

//

}

~FileObj()

{

Dispo(); ;

}



protected virtual void Dispo(bool isDisposing)

{

if (_alreadyDispo) return;

//if (isDisposing)

//{

// if (xml != null)

// {

// xml = null;

// }

//}

_alreadyDispo = true;

}

#endregion



#region IDisposable 成员



public void Dispo()

{

Dispo(true);

ssFinalize(this);

}



#endregion



#region 取得文件后缀名

/****************************************

* 函数名称:GetPostfixStr

* 功能说明:取得文件后缀名

* 参 数:filename:文件名称

* 调用示列:

* string filename = "";

* string s = tfixStr(filename);

*****************************************/

///

/// 取后缀名

///


/// 文件名

/// .gif|.html格式

public static string GetPostfixStr(string filename)

{

int start = dexOf(".");

int length = ;

string postfix = ing(start, length - start);

return postfix;

}

#endregion



#region 写文件

/****************************************

* 函数名称:WriteFile

* 功能说明:当文件不存时,则创建文件,并追加文件

* 参 数:Path:文件路径,Strings:文本内容

* 调用示列:

* string Path = h("");

* string Strings = "这是我写的内容啊";

* ile(Path,Strings);

*****************************************/

///

/// 写文件

///


/// 文件路径

/// 文件内容

public static void WriteFile(string Path, string Strings)

{



if (!(Path

))

{

//Directory(Path);



ream f = (Path);

();

e();

}

Writer f2 = new Writer(Path, true, 8);

ine(Strings);

();

e();





}

#endregion



#region 读文件

/****************************************

* 函数名称:ReadFile

* 功能说明:读取文本内容

* 参 数:Path:文件路径

* 调用示列:

* string Path = h("");

* string s = le(Path);

*****************************************/

///



/// 读文件

///


/// 文件路径

///

public static string ReadFile(string Path)

{

string s = "";

if (!(Path))

s = "不存在相应的目录";

el

{

StreamReader f2 = new StreamReader(Path, oding("gb2312"));

s = End();

();

e();

}



return s;

}

#endregion



#region 追加文件

/****************************************

* 函数名称:FileAdd

* 功能说明:追加文件内容

* 参 数:Path:文件路径,strings:内容

* 调用示列:

* string Path = h("");

* string Strings = "新追加内容";

* d(Path, Strings);

*****************************************/

///

/// 追加文件

///


/// 文件路径

/// 内容

public static void FileAdd(string Path, string strings)

{

StreamWriter sw = Text(Path);

(strings);

();

();

e();

}

#endregion



#region 拷贝文件

/****************************************

* 函数名称:FileCoppy

* 功能说明:拷贝文件

* 参 数:OrignFile:原始文件,NewFile:新文件路径

* 调用示列:

* string OrignFile = h("");

* string NewFile = h("");

* ppy(OrignFile, NewFile);

*****************************************/

///

>

/// 拷贝文件

///

/// 原始文件

/// 新文件路径

public static void FileCoppy(string OrignFile, string NewFile)

{

(OrignFile, NewFile, true);

}



#endregion



#region 删除文件

/****************************************

* 函数名称:FileDel

* 功能说明:删除文件

* 参 数:Path:文件路径

* 调用示列:

* string Path = h("");

* l(Path);

*****************************************/

///



/// 删除文件

///


/// 路径

public static void FileDel(string Path)

{

(Path);

}

#endregion



#region 移动文件

/****************************************

* 函数名称:FileMove

* 功能说明:移动文件

* 参 数:OrignFile:原始路径,NewFile:新文件路径

* 调用示列:

* string OrignFile = h("../说明.txt");

* string NewFile = h("../../说明.txt");

* ve(OrignFile, NewFile);

*****************************************/

///

/// 移动文件

///


/// 原始路径

/// 新路径

public static void FileMove(string OrignFile, string NewFile)

{

(OrignFile, NewFile);

}

#endregion



#region 在当前目录下创建目录

/****************************************

* 函数名称:FolderCreate

* 功能说明:在当前目录下创建目录

* 参 数:OrignFolder:当前目录,NewFloder:新目录

* 调用示列:

* string OrignFolder = h("test/");

* string NewFloder = "new";

* Create(OrignFolder, NewFloder);

*****************************************/

///

/// 在当前目录下创建目录

///


/// 当前目录

/// 新目录

public static void FolderCreate(string OrignFolder, string NewFloder)

{

rentDirectory(OrignFolder);

Directory(NewFloder);

}



///

/// 创建文件夹

///


///

public static void FolderCreate(string Path)

{



// 判断目标目录是否存在如果不存在则新建之

if (!(Path))

Directory(Path);

}



#endregion



#region 创建目录

public static void FileCreate(string Path)

{

FileInfo CreateFile = new FileInfo(Path); //创建文件

if (!)

{

FileStream FS = ();

();

}

}

#endregion



#region 递归删除文件夹目录及文件

/****************************************

* 函数名称:DeleteFolder

* 功能说明:递归删除文件夹目录及文件

* 参 数:dir:文件夹路径

* 调用示列:

* string dir = h("test/");

* Folder(dir);

*****************************************/

///



/// 递归删除文件夹目录及文件

///


///

///

public static void DeleteFolder(string dir)

{

if ((dir)) //如果存在这个文件夹删除之

{

foreach (string d in eSystemEntries(dir))

{

if ((d))

(d); //直接删除其中的文件

el

DeleteFolder(d); //递归删除子文件夹

}

(dir, true); //删除已空文件夹

}

}



#endregion



#region 将指定文件夹下面的所有内容copy到目标文件夹下面 果目标文件夹为只读属性就会报错。

/****************************************

* 函数名称:CopyDir

* 功能说明:将指定文件夹下面的所有内容copy到目标文件夹下面 果目标文件夹为只读属性就会报错。

* 参 数:srcPath:原始路径,aimPath:目标文件夹

* 调用示列:

* string srcPath = h("test/");

* string aimPath = h("test1/");

* r(srcPath,aimPath);

*****************************************/

///

/// 指定文件夹下面的所有内容copy到目标文件夹下面

///


/// 原始路径

/// 目标文件夹

public static void CopyDir(string srcPath, string aimPath)

{

try

{

// 检查目标目录是否以目录分割字符结束如果不是则添加之

if (aimPath[

ngth - 1] != orySeparatorChar)

aimPath += orySeparatorChar;

// 判断目标目录是否存在如果不存在则新建之

if (!(aimPath))

Directory(aimPath);

// 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组

//如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法

//string[] fileList = es(srcPath);

string[] fileList = eSystemEntries(srcPath);

//遍历所有的文件和目录

foreach (string file in fileList)

{

//先当作目录处理如果存在这个目录就递归Copy该目录下面的文件



if ((file))

CopyDir(file, aimPath + eName(file));

//否则直接Copy文件

el

(file, aimPath + eName(file), true);

}

}

catch (Exception ee)

{

throw new Exception(ng());

}

}

#endregion



#region 获取指定文件夹下所有子目录及文件(树形)

/****************************************

* 函数名称:GetFoldAll(string Path)

* 功能说明:获取指定文件夹下所有子目录及文件(树形)

* 参 数:Path:详细路径

* 调用示列:

* string strDirlist = h("templates");

* = dAll(strDirlist);

*****************************************/

///



/// 获取指定文件夹下所有子目录及文件

///


/// 详细路径

public static string GetFoldAll(string Path)

{



string str = "";

DirectoryInfo thisOne = new DirectoryInfo(Path);

str = ListTreeShow(thisOne, 0, str);

return str;



}



///

/// 获取指定文件夹下所有子目录及文件函数

///


/// 指定目录

/// 默认起始值,调用时,一般为0

/// 用于迭加的传入值,一般为空

///

public static string ListTreeShow(DirectoryInfo theDir, int nLevel, string Rn)//递归目录 文件

{

DirectoryInfo[] subDirectories = ectories();//获得目录

foreach (DirectoryInfo dirinfo in subDirectories)

{



if (nLevel == 0)

{



Rn += "├";

}

el

{

string _s = "";

for (int i = 1; i <= nLevel; i++)

{

_s += "│ ";

}

Rn += _s + "├";

}

Rn += "" + ng() + "
";

FileInfo[] fileInfo = es(); //目录下的文件

foreach (FileInfo fInfo in fileInfo)

{

if (nLevel == 0)

{

Rn += "│ ├";

}

el

{

string _f = "";

for (int i = 1; i <= nLevel; i++)

{

_f += "│ ";

}

Rn += _f + "│ ├";

}

Rn += ng() + "
";

}

Rn = ListTreeShow(dirinfo, nLevel + 1, Rn);





}

return Rn;

}







/****************************************

* 函数名称:GetFoldAll(string Path)

* 功能说明:获取指定文件夹下所有子目录及文件(下拉框形)

* 参 数:Path:详细路径

* 调用示列:

* string strDirlist = h("templates");

* = dAll(strDirlist,"tpl","");

*****************************************/

///



/// 获取指定文件夹下所有子目录及文件(下拉框形)

///


/// 详细路径

///下拉列表名称

///默认选择模板名称

public static string GetFoldAll(string Path,string DropName,string tplPath)

{

string strDrop = "";

string str = "";

DirectoryInfo thisOne = new DirectoryInfo(Path);

str = ListTreeShow(thisOne, 0, str,tplPath);

return strDrop+str+"
";



}



///

/// 获取指定文件夹下所有子目录及文件函数

///


/// 指定目录

/// 默认起始值,调用时,一般为0

/// 用于迭加的传入值,一般为空

/// 默认选择模板名称

///

public static string ListTreeShow(DirectoryInfo theDir, int nLevel, string Rn,string tplPath)//递归目录 文件



{

DirectoryInfo[] subDirectories = ectories();//获得目录



foreach (DirectoryInfo dirinfo in subDirectories)

{



Rn += "";





FileInfo[] fileInfo = es(); //目录下的文件

foreach (FileInfo fInfo in fileInfo)

{

Rn += "";

}

Rn = ListTreeShow(dirinfo, nLevel + 1, Rn, tplPath);





}

return Rn;

}

#endregion



#region 获取文件夹大小

/****************************************

* 函数名称:GetDirectoryLength(string dirPath)

* 功能说明:获取文件夹大小

* 参 数:dirPath:文件夹详细路径

* 调用示列:

* string Path = h("templates");

* (ectoryLength(Path));

*****************************************/

///



/// 获取文件夹大小

///


/// 文件夹路径

///

public static long GetDirectoryLength(string dirPath)

{

if (!(dirPath))

return 0;

long len = 0;

DirectoryInfo di = new DirectoryInfo(dirPath);

foreach (FileInfo fi in es())



{

len += ;

}

DirectoryInfo[] dis = ectories();

if ( > 0)

{

for (int i = 0; i < ; i++)

{

len += GetDirectoryLength(dis[i].FullName);

}

}

return len;

}

#endregion



#region 获取指定文件详细属性

/****************************************

* 函数名称:GetFileAttibe(string filePath)

* 功能说明:获取指定文件详细属性

* 参 数:filePath:文件详细路径

* 调用示列:

* string file = h("");

* (eAttibe(file));

*****************************************/

///



/// 获取指定文件详细属性

///


/// 文件详细路径

///

public static string GetFileAttibe(string filePath)

{

string str = "";

fo objFI = new fo(filePath);

str += "详细路径:" + me + "
文件名称:" + + "
文件长度:" + ng() + "字节
创建时间" + ng() + "
最后访问时间:" + ng() + "
修改时间:" + ng() + "
所在目录:" + oryName + "
扩展名:" + ion;

return str;

}

#endregion

}

}




本文发布于:2022-11-09 22:43:22,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/82/461935.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:dispose
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图