• 一個文件文件和路徑的類


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
     
    namespace Core
    {
        public static class FilePathTools
        {
            /// <summary>
            /// 取出文件擴展名
            /// </summary>
            /// <param name="FileName">文件名</param>
            /// <returns></returns>
            public static string GetExtFileTypeName(string FileName)
            {
                string sFile = FileName;
                sFile = sFile.Substring(sFile.LastIndexOf("\\") + 1);
                sFile = sFile.Substring(sFile.LastIndexOf(".")).ToLower();
                return sFile;
            }
     
            /// <summary>
            /// 取出文件名,包括擴展名的完整名稱
            /// </summary>
            /// <param name="FileName">文件名</param>
            /// <returns></returns>
            public static string GetFileFullName(string FileName)
            {
                string sFile = FileName;
                sFile = sFile.Substring(sFile.LastIndexOf("\\") + 1);
                //sFile = sFile.Substring(sFile.LastIndexOf(".")).ToLower();
                return sFile;
            }
     
            /// <summary>
            /// 取出文件名,不包括擴展名
            /// </summary>
            /// <param name="FileName">文件名</param>
            /// <returns></returns>
            public static string GetFileName(string FileName)
            {
                string sFile = FileName;
                sFile = sFile.Substring(sFile.LastIndexOf("\\") + 1);
                sFile = sFile.Substring(0,sFile.LastIndexOf(".")).ToLower();
                return sFile;
            }
     
            /// <summary>
            /// 取出文件所在的路徑
            /// </summary>
            /// <param name="FileName">文件名</param>
            /// <returns></returns>
            public static string GetFilePath(string FileName)
            {
                string sFile = FileName;
                sFile = sFile.Substring(0,sFile.LastIndexOf("\\") );            
                return sFile;
            }
     
            /// <summary>
            /// 產生另一個擴展名的文件完整路徑字符串
            /// </summary>
            /// <param name="fileName"></param>
            /// <param name="newext"></param>
            /// <returns></returns>
            public static string NewExtFileName(string fileName, string newext)
            {
                return GetFilePath(fileName) + "\\" + GetFileName(fileName) + newext;
            }
     
            /// <summary>
            /// 文件所在的路徑是否存在
            /// </summary>
            /// <param name="FileName">文件名</param>
            /// <returns></returns>
            public static bool HasFilePath(string FileName)
            {
                return Directory.Exists(GetFilePath(FileName));
            }
     
            /// <summary>
            /// 路徑創建
            /// </summary>
            /// <param name="FileName">文件名</param>
            /// <returns></returns>
            public static bool CreatePath(string path)
            {
                try
                {
                    if (!HasFilePath(GetFilePath(path)))
                    {
                        CreatePath(GetFilePath(path));
                    }
                    Directory.CreateDirectory(path);
                    return true;
                }
                catch(Exception ee)
                {
                    throw new Exception(ee.Message);
                }
            }
     
            /// <summary>
            /// 文件是否存在
            /// </summary>
            /// <param name="FileName">文件名</param>
            /// <returns></returns>
            public static bool HasFile(string FileName)
            {
                return File.Exists(FileName);
            }
            /// <summary>
            /// 取一文件夾下所有的文件名完整路徑,包括子文件夾下的
            /// </summary>
            /// <param name="path">一個路徑字符串</param>
            /// <returns>List<string></returns>
            public static List<string> GetAllFileForPath(string path)
            {
                List<string> lsf = new List<string>();
                try
                {
                    if (Directory.Exists(path))
                    {
                        List<string> ldirs = GetAllDirForPath(path);
                        foreach (string s in ldirs)
                        {
                            try
                            {
                                if (Directory.Exists(s))
                                    lsf.AddRange(Directory.GetFiles(s));
                            }
                            catch (UnauthorizedAccessException ue)
                            {
                               //碰到沒有訪問權限的,跳過
                            }
                            catch (NullReferenceException ne)
                            {
                                //碰到空引用,跳過
                            }
                        }
     
                    }
     
                    return lsf;
                }
                catch (UnauthorizedAccessException ue)
                {
                    return null;
                    //這個文件或文件夾沒有辦法訪問,產生空值
                }
                catch (NullReferenceException ne)
                {
                    return lsf;
                    //本文件夾是空值,返回已有的內容
                }
                catch (Exception ee)
                {
                    throw ee;
                }
            }
            /// <summary>
            /// 取一文件夾下所有的文件夾完整路徑,包括子文件夾下的
            /// </summary>
            /// <param name="path">一個路徑字符串</param>
            /// <returns>List<string></returns>
            public static List<string> GetAllDirForPath(string path)
            {
                try
                {
                    List<string> dirs = new List<string>();
                    try
                    {
                        if (!Directory.Exists(path))
                        {
                            throw new Exception(path + "不存在.");
                        }
                        if (!dirs.Contains(path))
                        {
                            dirs.Add(path);
                        }
                    }
                    catch (UnauthorizedAccessException ue)
                    {
                    }
                    catch (NullReferenceException ne)
                    {
     
                    }
                    if (Directory.GetDirectories(path).Length > 0)
                    {
                        foreach (string dir in Directory.GetDirectories(path))
                        {
                            try
                            {
                                if (!dirs.Contains(dir))
                                {
                                    dirs.Add(dir);
                                }
                            }
                            catch (UnauthorizedAccessException ue)
                            {
                            }
                            catch (NullReferenceException ne)
                            {
     
                            }
     
     
                            foreach (string s in GetAllDirForPath(dir))
                            {
                                try
                                {
                                    if (!dirs.Contains(s))
                                    {
                                        dirs.Add(s);
                                    }
                                }
                                catch (UnauthorizedAccessException ue)
                                {
                                }
                                catch (NullReferenceException ne)
                                {
     
                                }
                            }
                        }
                    }
     
                    return dirs;
                }
                catch (UnauthorizedAccessException ue)
                {
                    return null;
                }
                catch(Exception ee)
                {
                    throw ee;
                }
            }
     
        }
    }
  • 相关阅读:
    thymeleaf种处理select,radio和文字回显的问题
    springboot java.util.NoSuchElementException: No value present 异常处理
    Linux报错之ping: www.baidu.com: Name or service not known
    linux虚拟机黑屏解决
    Winscp无法连接linux虚拟机解决
    linux下centos解压时报错: gzip: stdin: not in gzip format   tar: Child returned status 1   tar: Error is not recoverable: exiting now
    CentOS无法使用ifconfig和root密码修改
    python基础学习(linux命令)
    DBCP|C3P0参数详解
    BeanUtilsDBUtils
  • 原文地址:https://www.cnblogs.com/yiyumeng/p/2310794.html
Copyright © 2020-2023  润新知