Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,文件夹大小,文件属性,遍历目录) - 技术文档 - 解决方案 - 重庆猫扑网络科技有限公司

河南彩票

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

  • 当前位置:网站河南彩票  >  技术文档      新闻来源:本站    发布者:    发布时间:2015-03-03

河南彩票 using System;


using System.Data;


河南彩票 using System.Configuration;


河南彩票 using System.Web;


using System.Web.Security;


using System.Web.UI;


河南彩票 using System.Web.UI.WebControls;


河南彩票 using System.Web.UI.WebControls.WebParts;


using System.Web.UI.HtmlControls;


using System.Text;


using System.IO;


namespace EC


{


///


河南彩票 /// FileObj 的摘要说明


///


public class FileObj


{


#region 构造函数


河南彩票 private bool _alreadyDispose = false;


河南彩票 public FileObj()


{


//


河南彩票 // TODO: 在此处添加构造函数逻辑


//


}


~FileObj()


{


Dispose(); ;


}


protected virtual void Dispose(bool isDisposing)


{


河南彩票 if (_alreadyDispose) return;


河南彩票 //if (isDisposing)


//{


河南彩票 //    if (xml != null)


//    {


河南彩票 //        xml = null;


河南彩票 //    }


//}


河南彩票 _alreadyDispose = true;


}


#endregion


河南彩票 #region IDisposable 成员


河南彩票 public void Dispose()


{


Dispose(true);


GC.SuppressFinalize(this);


}


河南彩票 #endregion


#region 取得文件后缀名


河南彩票 /****************************************


* 函数名称:GetPostfixStr


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


河南彩票 * 参    数:filename:文件名称


* 调用示列:


*           string filename = "aaa.aspx";       


*           string s = EC.FileObj.GetPostfixStr(filename);        


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


///


河南彩票 /// 取后缀名


///


///文件名


///.gif|.html格式


public static string GetPostfixStr(string filename)


{


河南彩票 int start = filename.LastIndexOf(".");


int length = filename.Length;


string postfix = filename.Substring(start, length - start);


return postfix;


}


#endregion


#region 写文件


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


河南彩票 * 函数名称:WriteFile


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


河南彩票 * 参    数:Path:文件路径,Strings:文本内容


* 调用示列:


河南彩票 *           string Path = Server.MapPath("Default2.aspx");      


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


*           EC.FileObj.WriteFile(Path,Strings);


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


///


/// 写文件


///


///文件路径


河南彩票 ///文件内容


public static void WriteFile(string Path, string Strings)


{


河南彩票 if (!System.IO.File.Exists(Path))


{


//Directory.CreateDirectory(Path);


System.IO.FileStream f = System.IO.File.Create(Path);


河南彩票 f.Close();


f.Dispose();


}


System.IO.StreamWriter f2 = new System.IO.StreamWriter(Path, true, System.Text.Encoding.UTF8);


f2.WriteLine(Strings);


河南彩票 f2.Close();


f2.Dispose();


}


河南彩票 #endregion


#region 读文件


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


* 函数名称:ReadFile


河南彩票 * 功能说明:读取文本内容


河南彩票 * 参    数:Path:文件路径


* 调用示列:


河南彩票 *           string Path = Server.MapPath("Default2.aspx");      


河南彩票 *           string s = EC.FileObj.ReadFile(Path);


河南彩票 *****************************************/


///


/// 读文件


///


///文件路径


///


河南彩票 public static string ReadFile(string Path)


{


河南彩票 string s = "";


if (!System.IO.File.Exists(Path))


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


else


{


StreamReader f2 = new StreamReader(Path, System.Text.Encoding.GetEncoding("gb2312"));


s = f2.ReadToEnd();


f2.Close();


河南彩票 f2.Dispose();


}


河南彩票 return s;


}


河南彩票 #endregion


#region 追加文件


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


* 函数名称:FileAdd


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


河南彩票 * 参    数:Path:文件路径,strings:内容


* 调用示列:


*           string Path = Server.MapPath("Default2.aspx");    


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


河南彩票 *           EC.FileObj.FileAdd(Path, Strings);


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


///


/// 追加文件


///


///文件路径


///内容


河南彩票 public static void FileAdd(string Path, string strings)


{


河南彩票 StreamWriter sw = File.AppendText(Path);


sw.Write(strings);


sw.Flush();


河南彩票 sw.Close();


sw.Dispose();


}


#endregion


#region 拷贝文件


河南彩票 /****************************************


河南彩票 * 函数名称:FileCoppy


* 功能说明:拷贝文件


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


河南彩票 * 调用示列:


*           string OrignFile = Server.MapPath("Default2.aspx");    


*           string NewFile = Server.MapPath("Default3.aspx");


*           EC.FileObj.FileCoppy(OrignFile, NewFile);


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


///


河南彩票 /// 拷贝文件


///


///原始文件


///新文件路径


public static void FileCoppy(string OrignFile, string NewFile)


{


File.Copy(OrignFile, NewFile, true);


}


#endregion


#region 删除文件


河南彩票 /****************************************


* 函数名称:FileDel


* 功能说明:删除文件


* 参    数:Path:文件路径


* 调用示列:


河南彩票 *           string Path = Server.MapPath("Default3.aspx");   


河南彩票 *           EC.FileObj.FileDel(Path);


河南彩票 *****************************************/


///


/// 删除文件


///


///路径


河南彩票 public static void FileDel(string Path)


{


File.Delete(Path);


}


#endregion


#region 移动文件


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


* 函数名称:FileMove


河南彩票 * 功能说明:移动文件


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


* 调用示列:


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


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


*            EC.FileObj.FileMove(OrignFile, NewFile);


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


///


/// 移动文件


///


河南彩票 ///原始路径


///新路径


河南彩票 public static void FileMove(string OrignFile, string NewFile)


{


河南彩票 File.Move(OrignFile, NewFile);


}


河南彩票 #endregion


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


河南彩票 /****************************************


* 函数名称:FolderCreate


河南彩票 * 功能说明:在当前目录下创建目录


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


* 调用示列:


*           string OrignFolder = Server.MapPath("test/");   


*           string NewFloder = "new";


*           EC.FileObj.FolderCreate(OrignFolder, NewFloder);


河南彩票 *****************************************/


///


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


///


河南彩票 ///当前目录


河南彩票 ///新目录


public static void FolderCreate(string OrignFolder, string NewFloder)


{


Directory.SetCurrentDirectory(OrignFolder);


Directory.CreateDirectory(NewFloder);


}


///


/// 创建文件夹


///


///


河南彩票 public static void FolderCreate(string Path)


{


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


if (!Directory.Exists(Path))


Directory.CreateDirectory(Path);


}


#endregion


河南彩票 #region 创建目录


河南彩票 public static void FileCreate(string Path)


{


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


if (!CreateFile.Exists)


{


FileStream FS = CreateFile.Create();


河南彩票 FS.Close();


}


}


#endregion


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


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


河南彩票 * 函数名称:DeleteFolder


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


* 参    数:dir:文件夹路径


河南彩票 * 调用示列:


*           string dir = Server.MapPath("test/"); 


*           EC.FileObj.DeleteFolder(dir);      


河南彩票 *****************************************/


///


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


///


/// 


///


public static void DeleteFolder(string dir)


{


河南彩票 if (Directory.Exists(dir)) //如果存在这个文件夹删除之


{


foreach (string d in Directory.GetFileSystemEntries(dir))


{


if (File.Exists(d))


河南彩票 File.Delete(d); //直接删除其中的文件                       


else


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


}


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


}


}


#endregion


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


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


* 函数名称:CopyDir


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


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


河南彩票 * 调用示列:


*           string srcPath = Server.MapPath("test/"); 


*           string aimPath = Server.MapPath("test1/");


河南彩票 *           EC.FileObj.CopyDir(srcPath,aimPath);  


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


///


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


///


///原始路径


///目标文件夹


public static void CopyDir(string srcPath, string aimPath)


{


try


{


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


if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar)


aimPath += Path.DirectorySeparatorChar;


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


if (!Directory.Exists(aimPath))


河南彩票 Directory.CreateDirectory(aimPath);


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


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


河南彩票 //string[] fileList = Directory.GetFiles(srcPath);


河南彩票 string[] fileList = Directory.GetFileSystemEntries(srcPath);


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


河南彩票 foreach (string file in fileList)


{


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


if (Directory.Exists(file))


CopyDir(file, aimPath + Path.GetFileName(file));


//否则直接Copy文件


else


File.Copy(file, aimPath + Path.GetFileName(file), true);


}


}


catch (Exception ee)


{


河南彩票 throw new Exception(ee.ToString());


}


}


河南彩票 #endregion


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


河南彩票 /****************************************


* 函数名称:GetFoldAll(string Path)


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


* 参    数:Path:详细路径


* 调用示列:


*           string strDirlist = Server.MapPath("templates");      


河南彩票 *           this.Literal1.Text = EC.FileObj.GetFoldAll(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 = theDir.GetDirectories();//获得目录


foreach (DirectoryInfo dirinfo in subDirectories)


{


if (nLevel == 0)


{


Rn += "├";


}


else


{


河南彩票 string _s = "";


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


{


河南彩票 _s += "│ ";


}


Rn += _s + "├";


}


Rn += "" + dirinfo.Name.ToString() + "
";


河南彩票 FileInfo[] fileInfo = dirinfo.GetFiles();   //目录下的文件


河南彩票 foreach (FileInfo fInfo in fileInfo)


{


河南彩票 if (nLevel == 0)


{


Rn += "│ ├";


}


else


{


河南彩票 string _f = "";


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


{


_f += "│ ";


}


Rn += _f + "│ ├";


}


Rn += fInfo.Name.ToString() + "
";


}


河南彩票 Rn = ListTreeShow(dirinfo, nLevel + 1, Rn);


}


河南彩票 return Rn;


}




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


* 函数名称:GetFoldAll(string Path)


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


* 参    数:Path:详细路径


河南彩票 * 调用示列:


河南彩票 *            string strDirlist = Server.MapPath("templates");     


河南彩票 *            this.Literal2.Text = EC.FileObj.GetFoldAll(strDirlist,"tpl","");


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


///


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


///

,

河南彩票 ///详细路径


河南彩票 ///下拉列表名称


河南彩票 ///默认选择模板名称


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


{


string strDrop = "