Path的常见方法-Path方法大全
string filename = @"F:\3.mp3";
int index = filename.LastIndexOf('.'); //获取字符串中最后一个匹配项的索引位置
string part = filename.Substring(0, index);
string Irc = part + ".Irc";
Console.WriteLine(index.ToString());
Console.WriteLine(part);
Console.WriteLine("歌词文件的名称为"+Irc);
然后拼接字符串,将后缀名改为".Irc" ,然后将名字打印出来。
上面的代码就是传统的实现文件修改后缀名的方法,那么让我们来看看Path类能够给我们带来哪些惊奇呢?
string name = @"F:\3.mp3";
string newname= Path.ChangeExtension(name, "Irc"); //提供的后缀名有没有”.”都可以
Console.WriteLine("歌词的文件为{0}",newname); //使用Path类的方法,搞定只需三句代码
Path的常见方法
1:ChangeExtension方法
方法原型:public static string ChangeExtension(string path,string extension);
该方法将path文件的后缀名替换成extension,对于参数有点无点都可以,需要注意的是Path处理的字符串路径是一般字符串的操作,并没有关联到实际的物理路径,比如 string path=Path.ChangeExtension("X:\\123.123","txt"); ,该方法返回"X:\\123.txt",即使不存在X盘,也是同样能够实现
2:Combine方法
方法原型: public static string Combine(string path1,string path2)该方法将path1与path2合并成一个完整的路径,并将其返回,合并的顺序是path1在前,path2在后,如果path2是完整路径则返回path2.同样该方法是对字符串的操作。
3:GetDirectoryName方法 该方法获取路径字符串path,并返回文件所在的路径
4:GetExtension方法:获取文件后缀名 GetFileName方法:获取文件名称 GetFileNameWithourExtension方法:获取没有后缀名的文件名称
借助Path获取文件名称,并实现移动文件到新路径
string oldpath =@"F:\13.txt";
string filename = Path.GetFileName(oldpath);
string newpath = Path.Combine(@"E:\", filename);
File.Move(oldpath, newpath);
5:GetFullPath方法:
方法原型: public static string GetFullPath(string partName)
有一个文件夹F:\IMG,里面都是jpg格式的图片,但是由于图片是从网站随意下载的,因此命名比较混乱,下面我们来通过代码实现这些图片的重新命名
1:首先获得该文件夹下的所有图片文件名
string[] files=Directory.GetFiles(@"F:\IMG","*.jpg");
Array.Sort(files); //实现排序
for (int i = 0; i < files.Length; i++)
{
string extension = Path.GetExtension(files[i]);
string dirName = Path.GetDirectoryName(files[i]);
string newFileName = i + extension;
string newpath = Path.Combine(dirName, newFileName);
File.Move(files[i], newpath);
}
抽象类Array提供Sort方法,可以方便的将字符串数组进行排序,这里也可以通过自己写一个冒泡排序来实现升序排列.
通过循环处理每一个文件
循环中首先获得文件后缀名
然后获得文件目录,即文件所在文件夹路径
通过循环数字,和文件后缀名,拼接得到新的文件名
然后拼接文件目录和新文件名得到新的路径
调用Move方法修改文件名
执行程序后,文件名重新命名,名字从0开始依次递增
冒泡排序实现代码 如下:
string[] files = Directory.GetFiles(@"F:\IMG", "*jpg");
Array.Sort(files);
for (int i = 0; i < files.Length-1; i++)
{
for (int j = 0; j < files.Length-1-i; j++)
{
if (string.Compare(files[j ], files[j+1]) > 0)
{
string temp = files[j];
files[j] = files[j + 1];
files[j + 1] = temp;
}
}
}
浙公网安备 33010602011771号