C#路径中获取文件全路径、目录、扩展名、文件名称

class Program
    {
        static void Main(string[] args)
        {

            //获取当前运行程序的目录
            string fileDir = Environment.CurrentDirectory;
            Console.WriteLine("当前程序目录:"+fileDir);

            //一个文件目录
            string filePath = "C:\\JiYF\\BenXH\\BenXHCMS.xml";
            Console.WriteLine("该文件的目录:"+filePath);

            string str = "获取文件的全路径:" + Path.GetFullPath(filePath);   //-->C:\JiYF\BenXH\BenXHCMS.xml
            Console.WriteLine(str);
            str = "获取文件所在的目录:" + Path.GetDirectoryName(filePath); //-->C:\JiYF\BenXH
            Console.WriteLine(str);
            str = "获取文件的名称含有后缀:" + Path.GetFileName(filePath);  //-->BenXHCMS.xml
            Console.WriteLine(str);
            str = "获取文件的名称没有后缀:" + Path.GetFileNameWithoutExtension(filePath); //-->BenXHCMS
            Console.WriteLine(str);
            str = "获取路径的后缀扩展名称:" + Path.GetExtension(filePath); //-->.xml
            Console.WriteLine(str);
            str = "获取路径的根目录:" + Path.GetPathRoot(filePath); //-->C:\
            Console.WriteLine(str);
            Console.ReadKey();

        }
    }

Path类介绍

#region 程序集 mscorlib.dll, v4.0.0.0
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll
#endregion

using System;
using System.Runtime.InteropServices;
using System.Security;
using System.Text;

namespace System.IO
{
    // 摘要:
    //     对包含文件或目录路径信息的 System.String 实例执行操作。这些操作是以跨平台的方式执行的。
    [ComVisible(true)]
    public static class Path
    {
        // 摘要:
        //     提供平台特定的替换字符,该替换字符用于在反映分层文件系统组织的路径字符串中分隔目录级别。
        public static readonly char AltDirectorySeparatorChar;
        //
        // 摘要:
        //     提供平台特定的字符,该字符用于在反映分层文件系统组织的路径字符串中分隔目录级别。
        public static readonly char DirectorySeparatorChar;
        //
        // 摘要:
        //     提供平台特定的字符数组,这些字符不能在传递到 System.IO.Path 类的成员的路径字符串参数中指定。
        //
        // 返回结果:
        //     当前平台的无效路径字符的字符数组。
        [Obsolete("Please use GetInvalidPathChars or GetInvalidFileNameChars instead.")]
        public static readonly char[] InvalidPathChars;
        //
        // 摘要:
        //     用于在环境变量中分隔路径字符串的平台特定的分隔符。
        public static readonly char PathSeparator;
        //
        // 摘要:
        //     提供平台特定的卷分隔符。
        public static readonly char VolumeSeparatorChar;

        // 摘要:
        //     更改路径字符串的扩展名。
        //
        // 参数:
        //   path:
        //     要修改的路径信息。该路径不能包含在 System.IO.Path.GetInvalidPathChars() 中定义的任何字符。
        //
        //   extension:
        //     新的扩展名(有或没有前导句点)。指定 null 以从 path 移除现有扩展名。
        //
        // 返回结果:
        //     包含修改的路径信息的字符串。在基于 Windows 的桌面平台上,如果 path 是 null 或空字符串 (""),则返回的路径信息是未修改的。如果
        //     extension 是 null,则返回的字符串包含指定的路径,其扩展名已移除。如果 path 不具有扩展名,并且 extension 不是 null,则返回的路径字符串包含
        //     extension,它追加到 path 的结尾。
        //
        // 异常:
        //   System.ArgumentException:
        //     path 包含 System.IO.Path.GetInvalidPathChars() 中已定义的一个或多个无效字符。
        public static string ChangeExtension(string path, string extension);
        //
        // 摘要:
        //     将字符串数组组合成一个路径。
        //
        // 参数:
        //   paths:
        //     由路径的各部分构成的数组。
        //
        // 返回结果:
        //     包含合并的路径的字符串。
        //
        // 异常:
        //   System.ArgumentException:
        //     数组中的一个字符串包含 System.IO.Path.GetInvalidPathChars() 中定义的一个或多个无效字符。
        //
        //   System.ArgumentNullException:
        //     数组中的一个字符串为 null。
        public static string Combine(params string[] paths);
        //
        // 摘要:
        //     将两个字符串组合成一个路径。
        //
        // 参数:
        //   path1:
        //     要组合的第一个路径。
        //
        //   path2:
        //     要组合的第二个路径。
        //
        // 返回结果:
        //     包含合并的路径的字符串。如果指定的路径之一是零长度字符串,则该方法返回其他路径。如果 path2 包含绝对路径,则该方法返回 path2。
        //
        // 异常:
        //   System.ArgumentException:
        //     path1 或 path2 包含 System.IO.Path.GetInvalidPathChars() 中已定义的一个或多个无效字符。
        //
        //   System.ArgumentNullException:
        //     path1 或 path2 为 null。
        public static string Combine(string path1, string path2);
        //
        // 摘要:
        //     将三个字符串组合成一个路径。
        //
        // 参数:
        //   path1:
        //     要组合的第一个路径。
        //
        //   path2:
        //     要组合的第二个路径。
        //
        //   path3:
        //     要组合的第三个路径。
        //
        // 返回结果:
        //     包含合并的路径的字符串。
        //
        // 异常:
        //   System.ArgumentException:
        //     path1、path2 或 path3 包含 System.IO.Path.GetInvalidPathChars() 中已定义的一个或多个无效字符。
        //
        //   System.ArgumentNullException:
        //     path1、path2 或 path3 为 null。
        public static string Combine(string path1, string path2, string path3);
        //
        // 摘要:
        //     将四个字符串组合成一个路径。
        //
        // 参数:
        //   path1:
        //     要组合的第一个路径。
        //
        //   path2:
        //     要组合的第二个路径。
        //
        //   path3:
        //     要组合的第三个路径。
        //
        //   path4:
        //     要组合的第四个路径。
        //
        // 返回结果:
        //     包含合并的路径的字符串。
        //
        // 异常:
        //   System.ArgumentException:
        //     path1、path2、path3 或 path4 包含 System.IO.Path.GetInvalidPathChars() 中已定义的一个或多个无效字符。
        //
        //   System.ArgumentNullException:
        //     path1、path2、path3 或 path4 为 null。
        public static string Combine(string path1, string path2, string path3, string path4);
        //
        // 摘要:
        //     返回指定路径字符串的目录信息。
        //
        // 参数:
        //   path:
        //     文件或目录的路径。
        //
        // 返回结果:
        //     包含 path 目录信息的 System.String;或者为 null(如果 path 表示根目录、是空字符串 ("") 或是 null)。如果
        //     path 没有包含目录信息,则返回 System.String.Empty。
        //
        // 异常:
        //   System.ArgumentException:
        //     path 参数包含无效字符、为空、或仅包含空白。
        //
        //   System.IO.PathTooLongException:
        //     path 参数的长度超过系统定义的最大长度。
        [SecuritySafeCritical]
        public static string GetDirectoryName(string path);
        //
        // 摘要:
        //     返回指定的路径字符串的扩展名。
        //
        // 参数:
        //   path:
        //     从其获取扩展名的路径字符串。
        //
        // 返回结果:
        //     包含指定路径的扩展名(包括“.”)的 System.String、null 或 System.String.Empty。如果 path 为 null,则
        //     GetExtension 返回 null。如果 path 不具有扩展名信息,则 GetExtension 返回 Empty。
        //
        // 异常:
        //   System.ArgumentException:
        //     path 包含 System.IO.Path.GetInvalidPathChars() 中已定义的一个或多个无效字符。
        public static string GetExtension(string path);
        //
        // 摘要:
        //     返回指定路径字符串的文件名和扩展名。
        //
        // 参数:
        //   path:
        //     从其获取文件名和扩展名的路径字符串。
        //
        // 返回结果:
        //     一个 System.String,由 path 中最后的目录字符后的字符组成。如果 path 的最后一个字符是目录或卷分隔符,则此方法返回 System.String.Empty。如果
        //     path 为 null,则此方法返回 null。
        //
        // 异常:
        //   System.ArgumentException:
        //     path 包含 System.IO.Path.GetInvalidPathChars() 中已定义的一个或多个无效字符。
        public static string GetFileName(string path);
        //
        // 摘要:
        //     返回不具有扩展名的指定路径字符串的文件名。
        //
        // 参数:
        //   path:
        //     文件的路径。
        //
        // 返回结果:
        //     包含由 System.IO.Path.GetFileName(System.String) 返回的字符串的 System.String,但不包括最后的句点
        //     (.) 和该句点后的所有字符。
        //
        // 异常:
        //   System.ArgumentException:
        //     path 包含 System.IO.Path.GetInvalidPathChars() 中已定义的一个或多个无效字符。
        public static string GetFileNameWithoutExtension(string path);
        //
        // 摘要:
        //     返回指定路径字符串的绝对路径。
        //
        // 参数:
        //   path:
        //     要为其获取绝对路径信息的文件或目录。
        //
        // 返回结果:
        //     包含 path 的完全限定位置的字符串,例如“C:\MyFile.txt”。
        //
        // 异常:
        //   System.ArgumentException:
        //     path 是一个零长度字符串,仅包含空白或者包含 System.IO.Path.GetInvalidPathChars() 中已定义一个或多个无效字符。-
        //     或 -系统未能检索绝对路径。
        //
        //   System.Security.SecurityException:
        //     调用方没有所需的权限。
        //
        //   System.ArgumentNullException:
        //     path 为 null。
        //
        //   System.NotSupportedException:
        //     path 包含一个冒号(“:”),此冒号不是卷标识符(如,“c:\”)的一部分。
        //
        //   System.IO.PathTooLongException:
        //     指定的路径、文件名或者两者都超出了系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260
        //     个字符。
        [SecuritySafeCritical]
        public static string GetFullPath(string path);
        //
        // 摘要:
        //     获取包含不允许在文件名中使用的字符的数组。
        //
        // 返回结果:
        //     包含不允许在文件名中使用的字符的数组。
        public static char[] GetInvalidFileNameChars();
        //
        // 摘要:
        //     获取包含不允许在路径名中使用的字符的数组。
        //
        // 返回结果:
        //     包含不允许在路径名中使用的字符的数组。
        public static char[] GetInvalidPathChars();
        //
        // 摘要:
        //     获取指定路径的根目录信息。
        //
        // 参数:
        //   path:
        //     从其获取根目录信息的路径。
        //
        // 返回结果:
        //     一个包含 path 的根目录的字符串,例如“C:\”;如果 path 为 null,则为 null;如果 path 不包含根目录信息,则为空字符串。
        //
        // 异常:
        //   System.ArgumentException:
        //     path 包含 System.IO.Path.GetInvalidPathChars() 中已定义的一个或多个无效字符。- 或 -System.String.Empty
        //     被传递到 path。
        [SecuritySafeCritical]
        public static string GetPathRoot(string path);
        //
        // 摘要:
        //     返回随机文件夹名或文件名。
        //
        // 返回结果:
        //     随机文件夹名或文件名。
        public static string GetRandomFileName();
        //
        // 摘要:
        //     创建磁盘上唯一命名的零字节的临时文件并返回该文件的完整路径。
        //
        // 返回结果:
        //     包含临时文件的完整路径的 System.String。
        //
        // 异常:
        //   System.IO.IOException:
        //     发生 I/O 错误,例如没有提供唯一的临时文件名。- 或 -此方法无法创建临时文件。
        [SecuritySafeCritical]
        public static string GetTempFileName();
        //
        // 摘要:
        //     返回当前系统的临时文件夹的路径。
        //
        // 返回结果:
        //     包含临时目录的路径信息的 System.String。
        //
        // 异常:
        //   System.Security.SecurityException:
        //     调用方没有所需的权限。
        [SecuritySafeCritical]
        public static string GetTempPath();
        //
        // 摘要:
        //     确定路径是否包括文件扩展名。
        //
        // 参数:
        //   path:
        //     用于搜索扩展名的路径。
        //
        // 返回结果:
        //     如果路径中最后的目录分隔符(\\ 或 /)或卷分隔符 (:) 之后的字符包括句点 (.),并且后面跟有一个或多个字符,则为 true;否则为 false。
        //
        // 异常:
        //   System.ArgumentException:
        //     path 包含 System.IO.Path.GetInvalidPathChars() 中已定义的一个或多个无效字符。
        public static bool HasExtension(string path);
        //
        // 摘要:
        //     获取一个值,该值指示指定的路径字符串是包含绝对路径信息还是包含相对路径信息。
        //
        // 参数:
        //   path:
        //     要测试的路径。
        //
        // 返回结果:
        //     如果 path 包含绝对路径,则为 true;否则为 false。
        //
        // 异常:
        //   System.ArgumentException:
        //     path 包含 System.IO.Path.GetInvalidPathChars() 中已定义的一个或多个无效字符。
        public static bool IsPathRooted(string path);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容