C#文件帮助类FoderHelper

封装了对文件类的各种操作

转载自http://www.open-open.com/lib/view/open1391348397082.html

代码如下:

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){}

            }





        }

    }

}
View Code

 

 

你可能感兴趣的:(RHEL)