C_文件操作类

  • 格式:doc
  • 大小:130.50 KB
  • 文档页数:22

using System;using System.IO;using System.Text;using System.Data;using System.Collections;using System.Runtime.InteropServices;namespace DbConvert{/********************************************************************************** ** 功能说明:文件操作类* 作者:* 版本:** *******************************************************************************////<summary>///文件操作类///</summary>public class FileObj : IDisposable{private bool _alreadyDispose = false;private const long KB = 1024;private const long MB = 1024 * KB;private const long GB = 1024 * MB;private static long FolderFileSize(string path){long size = 0;try{FileInfo[] files = (new DirectoryInfo(path)).GetFiles();foreach (FileInfo file in files){size += file.Length;}}catch (Exception ex){MessageBox.Show(ex.Message);}return size;}private static long FolderSize(string path){long Fsize = 0;try{Fsize = FolderFileSize(path);DirectoryInfo[] folders = (new DirectoryInfo(path)).GetDirectories();foreach (DirectoryInfo folder in folders)Fsize += FolderSize(folder.FullName);}catch (Exception ex){MessageBox.Show(ex.Message);}return Fsize;}#region构造函数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 成员[DllImport("kernel32")]private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);[DllImport("kernel32")]//返回表示失败,非为成功private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);public void Dispose(){Dispose(true);GC.SuppressFinalize(this);}#endregion#region取得文件后缀名/***************************************** 函数名称:GetPostfixStr* 功能说明:取得文件后缀名* 参数:filename:文件名称* 调用示列:* string filename = "aaa.aspx";* string s = EC.FileObj.GetPostfixStr(filename); *****************************************////<summary>///取后缀名///</summary>///<param name="filename">文件名</param>///<returns>.gif|.html格式</returns>public static string GetPostfixStr(string filename){int start = stIndexOf(".");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);*****************************************////<summary>///写文件///</summary>///<param name="Path">文件路径</param>///<param name="Strings">文件内容</param>public static void WriteFile(string Path, string Strings){if (!System.IO.File.Exists(Path)){System.IO.FileStream f = System.IO.File.Create(Path);f.Close();}System.IO.StreamWriter f2 = new System.IO.StreamWriter(Path, false, System.Text.Encoding.GetEncoding("gb2312"));f2.Write(Strings);f2.Close();f2.Dispose();}#endregion#region读文件/***************************************** 函数名称:ReadFile* 功能说明:读取文本内容* 参数:Path:文件路径* 调用示列:* string Path = Server.MapPath("Default2.aspx");* string s = EC.FileObj.ReadFile(Path);*****************************************////<summary>///读文件///</summary>///<param name="Path">文件路径</param>///<returns></returns>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);*****************************************////<summary>///追加文件///</summary>///<param name="Path">文件路径</param>///<param name="strings">内容</param>public static void FileAdd(string Path, string strings){StreamWriter sw = File.AppendText(Path);sw.Write(strings);sw.Flush();sw.Close();}#endregion#region拷贝文件/***************************************** 函数名称:FileCopy* 功能说明:拷贝文件* 参数:OrignFile:原始文件,NewFile:新文件路径* 调用示列:* string orignFile = Server.MapPath("Default2.aspx");* string NewFile = Server.MapPath("Default3.aspx");* EC.FileObj.FileCopy(OrignFile, NewFile);*****************************************////<summary>///拷贝文件///</summary>///<param name="OrignFile">原始文件</param>///<param name="NewFile">新文件路径</param>public static void FileCopy(string orignFile, string NewFile){File.Copy(orignFile, NewFile, true);}#endregion#region删除文件/***************************************** 函数名称:FileDel* 功能说明:删除文件* 参数:Path:文件路径* 调用示列:* string Path = Server.MapPath("Default3.aspx");* EC.FileObj.FileDel(Path);*****************************************////<summary>///删除文件///</summary>///<param name="Path">路径</param>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);*****************************************////<summary>///移动文件///</summary>///<param name="OrignFile">原始路径</param>///<param name="NewFile">新路径</param>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);*****************************************////<summary>///在当前目录下创建目录///</summary>///<param name="OrignFolder">当前目录</param>///<param name="NewFloder">新目录</param>public static void FolderCreate(string orignFolder, string NewFloder){Directory.SetCurrentDirectory(orignFolder);Directory.CreateDirectory(NewFloder);}#endregion#region递归删除文件夹目录及文件/***************************************** 函数名称:DeleteFolder* 功能说明:递归删除文件夹目录及文件* 参数:dir:文件夹路径* 调用示列:* string dir = Server.MapPath("test/");* EC.FileObj.DeleteFolder(dir);*****************************************////<summary>///递归删除文件夹目录及文件///</summary>///<param name="dir"></param>///<returns></returns>public static void DeleteFolder(string dir){if (Directory.Exists(dir)) //如果存在这个文件夹删除之{foreach (string d in Directory.GetFileSystemEntries(dir)){if (File.Exists(d))File.Delete(d); //直接删除其中的文件elseDeleteFolder(d); //递归删除子文件夹}Directory.Delete(dir); //删除已空文件夹}}#endregion#region将指定文件夹下面的所有内容copy到目标文件夹下面果目标文件夹为只读属性就会报错。