C#文件帮助类FoderHelper

来源:互联网 发布:太阳花 知乎 编辑:程序博客网 时间:2024/06/03 01:30
using System;using System.Data;using System.Configuration;using System.Linq;using System.Web;using System.IO;using System.Collections;using System.Collections.Generic;using System.Security.AccessControl;using System.Security.Permissions;namespace Bll{    public class FolderHelper    {        //判断文件夹是否存在        public static bool checkFolderExits(string path)        {            DirectoryInfo dir = new DirectoryInfo(path);            if (dir.Exists)//文件夹存在            {                   return true;            }            else            {               //dir.Create();//不存在就创建一个                return false;            }        }        //创建一个文件夹,存在就创建失败        public static bool CreateNewFolder(string path)        {            DirectoryInfo dir = new DirectoryInfo(path);            if (!dir.Exists)            {                dir.Create();                return true;            }            else                return false;        }        /// <summary>        /// 在指定目录下创建指定名称文件夹        /// </summary>        /// <param name="ParentsPath"></param>        /// <param name="NewFolderName"></param>        /// <returns></returns>        public static bool CreateNewFolder(string ParentsPath, string NewFolderName)        {            string CreatePath = ParentsPath + @"\" + NewFolderName;            DirectoryInfo dir = new DirectoryInfo(CreatePath);            if (!dir.Exists)            {                dir.Create();                return true;            }            else                return false;        }        /// <summary>        /// 返回目录下的所有文件名        /// </summary>        /// <param name="path"></param>        /// <returns></returns>        public static ArrayList getAllFiles(string path)        {            DirectoryInfo dir = new DirectoryInfo(path);            if (dir.Exists)            {                FileInfo[] fileinfo = dir.GetFiles();                ArrayList list = new ArrayList();                foreach (FileInfo f in fileinfo)                {                    list.Add(f.Name);                }                return list;            }            else                return null;        }        /// <summary>        /// 计算文件夹的大小        /// </summary>        /// <param name="d"></param>        /// <returns></returns>        public static long DirSize(DirectoryInfo d)        {            long Size = 0;            // Add file sizes.            FileInfo[] fis = d.GetFiles();//获得目录文件列表            foreach (FileInfo fi in fis)            {                Size += fi.Length;            }            // Add subdirectory sizes.            DirectoryInfo[] dis = d.GetDirectories();//获取目录子目录列表            foreach (DirectoryInfo di in dis)            {                Size += DirSize(di);            }            return Size;        }        /// <summary>        /// 把文件夹得大小转换成比较合适的表示单位        /// </summary>        /// <param name="size"></param>        /// <returns></returns>        public static string ViewSize(long size)        {            long m=size;            string viewstr;                        if ((m / 1024) > 0)//表示可以转换成KB            {                m = m / 1024;//转换成KB                                if ((m / 1024) > 0)//表示可以转换成MB                {                    m = m / 1024;//转换成MB了                    if ((m / 1024) > 0)//表示可以转换成GB                    {                        m = m / 1024;//转换成GB了                        viewstr = m.ToString() + "GB";                    }                    else                    {                        viewstr = m.ToString() + "MB";                    }                }                else                {                    viewstr = m.ToString() + "KB";                }            }            else            {                viewstr = m.ToString() + "byte";            }            return viewstr;        }        /// <summary>        /// 删除指定目录和内容        /// </summary>        /// <param name="dir"></param>        /// <returns></returns>        public static bool delDir(string dir)        {            bool flag = false;            DirectoryInfo d = new DirectoryInfo(dir);            if (d.Exists)//判断目录是否存在            {                try                {                    d.Delete();                    flag = true;                }                catch (Exception e) { flag = false; }            }            return flag;        }        /// <summary>        /// 删除指定文件        /// </summary>        /// <param name="fil"></param>        /// <returns></returns>        public static bool delFile(string fil)        {            bool flag = false;            FileInfo d = new FileInfo(fil);            if (d.Exists)//判断目录是否存在            {                try                {                    d.Delete();                    flag = true;                }                catch (Exception e) { flag = false; }            }            return flag;        }        public static void Copy(string sourceDirectory, string targetDirectory)        {            DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);            DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);            CopyAll(diSource, diTarget);        }        /// <summary>        /// 复制目录及子文件到指定目录        /// </summary>        /// <param name="source"></param>        /// <param name="target"></param>        public static void CopyAll(DirectoryInfo source, DirectoryInfo target)        {            // Check if the target directory exists, if not, create it.            if (Directory.Exists(target.FullName) == false)            {                Directory.CreateDirectory(target.FullName);            }            // Copy each file into it's new directory.            foreach (FileInfo fi in source.GetFiles())            {                Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);                fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);            }            // Copy each subdirectory using recursion.            foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())            {                DirectoryInfo nextTargetSubDir =                    target.CreateSubdirectory(diSourceSubDir.Name);                CopyAll(diSourceSubDir, nextTargetSubDir);            }        }        /// <summary>        /// 循环读取某个目录下的所有文件和目录,查询有关每一项的一些信息。返回一个文件列表        /// </summary>        /// <param name="strCurrentDir"></param>        public static List<fileEntity> FileView(string strCurrentDir)        {            List<fileEntity> fileList = new List<fileEntity>();            DirectoryInfo dir = new DirectoryInfo(strCurrentDir);            foreach (FileSystemInfo fsi in dir.GetFileSystemInfos())//这个循环再读取文件的信息            {                try                {                    //FileSystemInfo 对象可以表示文件或目录,从而可以作为 FileInfo 或 DirectoryInfo 对象的基础。 当分析许多文件和目录时,请使用该基类。                    FileInfo fi;                    DirectoryInfo di;                    //创建一个自己写的实体类的实体                    fileEntity newfile = new fileEntity();                    if (fsi is FileInfo)//外层循环读取文件信息                    {                        //表示当前fsi是文件                        fi = (FileInfo)fsi;                        newfile.fileName = fi.Name;                        newfile.fileExt = fi.Extension;                        newfile.fileSize = fi.Length;                        newfile.FileModify = fi.LastWriteTime;                        //通过扩展名来选择文件显示图标                        switch (newfile.fileExt)                        {                            case ".gif":                                newfile.picName = "gif.gif";                                break;                            default:                                newfile.picName = "other.gif";                                break;                        }                        newfile.picName = "<img src='" + newfile.picName + "' width=25 height=20>";                    }                    else                    {                        di = (DirectoryInfo)fsi;                        newfile.fileName = di.Name;                        newfile.fileSize = DirSize(di);//调用计算文件夹大小的方法                        newfile.FileModify = di.LastWriteTime;                        newfile.picName = "<img src='directory.gif' width=25 height=20>";                    }                    fileList.Add(newfile);                }                catch (Exception e) { }            }            return fileList;        }        /// <summary>        /// 显示目录和文件        /// </summary>        /// <param name="path"></param>        public static void All(string path)        {            FileInfo fi;//文件            DirectoryInfo di;//目录            DirectoryInfo dir=null;            int i = 0; //控制行的颜色            try            {                dir = new DirectoryInfo(path);            }            catch (Exception e) { }            foreach (FileSystemInfo fsi in dir.GetFileSystemInfos())            {                try                {                    fileEntity newfile = new fileEntity();                    FolderEntity folder = new FolderEntity();                    newfile.fileName = "";                    newfile.picName = "";                    newfile.fileExt = "";                    newfile.fileSize = 0;                    folder.folderName = "";                    folder.picName = "";                    i += 1;                    if (fsi is FileInfo)//判断当前读取的是不是一个文件                    {                        //表示当前fsi是文件                        fi = (FileInfo)fsi;                        newfile.fileName = fi.Name;                        newfile.fileExt = fi.Extension;                        newfile.fileSize = fi.Length;                        newfile.FileModify = fi.LastWriteTime;                        //将文件加上可以下载文件的链接                        newfile.fileName = "<a href='........'></a>";                        //通过扩展名来选择文件显示图标                        //Response.Write(Session["DataBasePath"].ToString()+"\\filetype\\"+pfun.getFileExt(FileExt)+".gif");                        if (fsi.Exists)                        {                            switch (newfile.fileExt)                            {                                case ".gif":                                    newfile.picName = "gif.gif";                                    break;                                default:                                    newfile.picName = "other.gif";                                    break;                            }                        }                        else                        {                            newfile.picName = "unknown.gif";                        }                        /*                        switch(FileExt)                        {                            case ".gif":                                FilePic = "gif.gif";                                break;                            default:                                FilePic = "other.gif";                                break;                        }                        */                        newfile.picName = "<img src='filetype/" + newfile.picName + "' width=16 height=16>";                    }                    else                    {                        //当前为目录                        di = (DirectoryInfo)fsi;                        folder.folderName = di.Name;                        //给目录加上链接                        folder.folderName = "<a href='.......'><a>";                        folder.lastTime = di.LastWriteTime;                        folder.picName = "<img src='filetype/folder.gif' width=16 height=16>";                    }                }catch(Exception e){}            }        }    }}

原创粉丝点击