web-dev-qa-db-ja.com

C#で画像パスのファイル名を変更する

私の画像のURLがいいねなら、

photo\myFolder\image.jpg

私がどのように変えたいかは好きです、

photo\myFolder\image-resize.jpg

それを行うための短い方法はありますか?

14
zey

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 [〜#〜] です。

9
Soner Gönül

次のコードスニペットはファイル名を変更し、パスと拡張子を変更しません。

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"
14
Doomjunky

またはFile.Moveメソッド:

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

ところで:\は相対パスおよび/またはWebパスです。この点に注意してください。

3
Smartis

私はこのような方法を使用します:

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");

結果:photo\myFolder\image-resize.jpg

1
MAXE

これは私がファイルの名前変更に使用するものです

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

あなたはこれを試すことができます

 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);

これを試して

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