前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#文件帮助类FoderHelper

C#文件帮助类FoderHelper

原创
作者头像
用户7108768
修改2021-11-03 09:44:23
3100
修改2021-11-03 09:44:23
举报
代码语言:javascript
复制
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){}  
            }  


        }  
    }  
}  </pre> 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档