首页 > 代码库 > Path类型的扩展方法 z
Path类型的扩展方法 z
写了一个基于System.IO.Path类型方法的扩展类型,用于快速对文件系统路径进行操作。如下图:
其中有许多方法就是直接调用Path类型的静态方法。比如AppendPath方法内部会直接调用Path.Combine。这些方法就不需要再介绍了。下面看一些许多说明的方法:
ToDirectory方法会把一个文件路径放到文件夹路径内并返回结果,比如:
var path =@"C:\a\b\c.jpg"; Console.WriteLine(path.ToDirectory(@"D:\文件夹"));
输出:
D:\文件夹\c.jpg
ToDirectory方法还可以把一些列的文件放到一个文件夹路径内,这里还需要一个源文件夹路径。比如我们想把“C:\文件夹”内的一些文件复制到“D:\新文件夹”内,源文件夹路径就是“C:\文件夹”。通过这个方法来完成文件路径转换,如下代码:
var paths =newstring[] { @"c:\文件夹\a.jpg", @"c:\文件夹\b.cs", @"c:\文件夹\子文件夹\test.txt", @"c:\文件夹\子文件夹\子子文件夹\haha" }; var destPaths = paths.ToDirectory(@"D:\新文件夹", @"C:\文件夹"); foreach (var file in destPaths) Console.WriteLine(file);
输出:
D:\新文件夹\a.jpg D:\新文件夹\b.cs D:\新文件夹\子文件夹\test.txt D:\新文件夹\子文件夹\子子文件夹\haha
ChangeFileName和ChangeFileNameOnly方法可以改变文件的名称,他们的区别是后者不会更改扩展名,示例:
var path =@"C:\test.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:\test\mgen"; var path2 =@"C:\test\mgen\"; Console.WriteLine(Path.GetDirectoryName(path1)); Console.WriteLine(Path.GetDirectoryName(path2));
输出:
C:\test C:\test\mgen
由于第二个路径最后面有”\”,而Path.GetDirectoryName方法调用后仅会把这个”\”去掉。
而GetDirectoryPath方法的执行会先去掉后面的”\”(如果有的话),所以GetDirectoryPath方法总是会返回上一层的目录。如下GetDirectoryPath方法执行:
publicstaticstring GetDirectoryPath(thisstring path) { path = path.TrimEnd(Path.DirectorySeparatorChar); returnPath.GetDirectoryName(path); }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。