在C#中更改图像路径的文件名

时间:2013-06-19 06:31:54

标签: c# asp.net string path

如果我的图片网址是喜欢的,

photo\myFolder\image.jpg

我想改变的方式是喜欢,

photo\myFolder\image-resize.jpg

有没有简短的方法呢?

7 个答案:

答案 0 :(得分:14)

以下代码段更改了文件名,并保留了路径和扩展名:

string path = @"photo\myFolder\image.jpg";
string newFileName = @"image-resize";

string dir = Path.GetDirectoryName(path);
string ext = Path.GetExtension(path);
path =  Path.Combine(dir, newFileName + ext); // @"photo\myFolder\image-resize.jpg"

答案 1 :(得分:9)

您可以使用Path.GetFileNameWithoutExtension方法。

  

返回没有扩展名的指定路径字符串的文件名。

string path = @"photo\myFolder\image.jpg";
string file = Path.GetFileNameWithoutExtension(path);
string NewPath = path.Replace(file, file + "-resize");
Console.WriteLine(NewPath); //photo\myFolder\image-resize.jpg

这是DEMO

答案 2 :(得分:3)

或File.Move方法:

System.IO.File.Move(@"photo\myFolder\image.jpg", @"photo\myFolder\image-resize.jpg");

顺便说一句:\是一个相对路径和/或一个网络路径,记住这一点。

答案 3 :(得分:1)

你可以试试这个

 string  fileName = @"photo\myFolder\image.jpg";
 string newFileName = fileName.Substring(0, fileName.LastIndexOf('.')) + 
                     "-resize" + fileName.Substring(fileName.LastIndexOf('.'));

 File.Copy(fileName, newFileName);
 File.Delete(fileName);

答案 4 :(得分:1)

这是我用于文件重命名的方法

public static string AppendToFileName(string source, string appendValue)
{
    return $"{Path.Combine(Path.GetDirectoryName(source), Path.GetFileNameWithoutExtension(source))}{appendValue}{Path.GetExtension(source)}";
}

答案 5 :(得分:1)

我会使用这样的方法:

private static string GetFileNameAppendVariation(string fileName, string variation)
{
    string finalPath = Path.GetDirectoryName(fileName);

    string newfilename = String.Concat(Path.GetFileNameWithoutExtension(fileName), variation, Path.GetExtension(fileName));

    return Path.Combine(finalPath, newfilename);
}

通过这种方式:

string result = GetFileNameAppendVariation(@"photo\myFolder\image.jpg", "-resize");

结果:照片\ myFolder \ image-resize.jpg

答案 6 :(得分:0)

试试这个

File.Copy(Server.MapPath("~/") +"photo/myFolder/image.jpg",Server.MapPath("~/") +"photo/myFolder/image-resize.jpg",true);
File.Delete(Server.MapPath("~/") + "photo/myFolder/image.jpg");