zoukankan      html  css  js  c++  java
  • Path类型的扩展方法 z

    写了一个基于System.IO.Path类型方法的扩展类型,用于快速对文件系统路径进行操作。如下图:

    image

    其中有许多方法就是直接调用Path类型的静态方法。比如AppendPath方法内部会直接调用Path.Combine。这些方法就不需要再介绍了。下面看一些许多说明的方法:

    ToDirectory方法会把一个文件路径放到文件夹路径内并返回结果,比如:

    var path =@"C:ac.jpg"; Console.WriteLine(path.ToDirectory(@"D:文件夹"));

    输出:

    D:文件夹c.jpg

    ToDirectory方法还可以把一些列的文件放到一个文件夹路径内,这里还需要一个源文件夹路径。比如我们想把“C:文件夹”内的一些文件复制到“D:新文件夹”内,源文件夹路径就是“C:文件夹”。通过这个方法来完成文件路径转换,如下代码:

    var paths =newstring[] { @"c:文件夹a.jpg", @"c:文件夹.cs", @"c:文件夹子文件夹	est.txt", @"c:文件夹子文件夹子子文件夹haha" }; var destPaths = paths.ToDirectory(@"D:新文件夹", @"C:文件夹"); foreach (var file in destPaths) Console.WriteLine(file);

    输出:

    D:新文件夹a.jpg D:新文件夹.cs D:新文件夹子文件夹	est.txt D:新文件夹子文件夹子子文件夹haha

    ChangeFileName和ChangeFileNameOnly方法可以改变文件的名称,他们的区别是后者不会更改扩展名,示例:

    var path =@"C:	est.jpg"; Console.WriteLine(path.ChangeFileName("mgen")); Console.WriteLine(path.ChangeFileNameOnly("mgen"));

    输出:

    C:mgen C:mgen.jpg

    GetDirectoryPath方法的用途和Path.GetDirectoryName方法是一致的,和Path.GetDirectoryName方法不同的是,它总是会返回上一层的目录。让我们来看Path.GetDirectoryName方法的一个问题:

    var path1 =@"C:	estmgen"; var path2 =@"C:	estmgen"; Console.WriteLine(Path.GetDirectoryName(path1)); Console.WriteLine(Path.GetDirectoryName(path2));

    输出:

    C:	est C:	estmgen

    由于第二个路径最后面有””,而Path.GetDirectoryName方法调用后仅会把这个””去掉。

    而GetDirectoryPath方法的执行会先去掉后面的””(如果有的话),所以GetDirectoryPath方法总是会返回上一层的目录。如下GetDirectoryPath方法执行:

    publicstaticstring GetDirectoryPath(thisstring path) {     path = path.TrimEnd(Path.DirectorySeparatorChar); returnPath.GetDirectoryName(path); }
  • 相关阅读:
    实验5 数独游戏界面设计
    实验4 颜色、字符串资源的使用 实验报告
    实验五 操作系统之存储管理
    实验四 主存空间的分配和回收
    实验三 进程调度模拟程序
    实验二作业调度模拟程序(先来先服务(FCFS)调度算法)
    实验八 SQLite数据库操作
    实验七 BindService模拟通信
    实验六 在应用程序中播放音频和视频
    实验五 数独游戏界面设计
  • 原文地址:https://www.cnblogs.com/zeroone/p/3708109.html
Copyright © 2011-2022 走看看