获取文件名和扩展名,并使用子字符串删除查询字符串

本文关键字:字符串 删除 查询 文件名 扩展名 获取 | 更新日期: 2023-09-27 18:17:54

大家好,

我有几个图像url从我下载的数据,并将其保存在数据库。我使用(imageurl.Split('/'))[(imageurl.Split('/').Length) - 1];来创建文件名。

问题是,有一些url包含查询字符串。由于我得到的文件名有模式imgname.img_type_extension?somefield=somevalue

我怎么能得到filename。扩展离开查询字符串从上面的子字符串??

获取文件名和扩展名,并使用子字符串删除查询字符串

var path = imageurl.Split('?')[0];
var fileName = Path.GetFileNameWithoutExtension(path);

编辑:使用Path

    var path = imageurl.Split('?')[0];
    var fileName = Path.GetFileName(path);

为什么不让UriBuilder为您做解析呢?

var url = new UriBuilder("http://x.com/xyz/imgname.img_type_extension?somefield=somevalue");
string filename = Path.GetFileName(url.Path);

var fNameWithQuery = (imageurl.Split('/'))[(imageurl.Split('/').Length) - 1];
//get first string from array created by splitting substring on occurence of '?'
var fNameAndExt = fNameWithQuery.Split('?')[0];

也许是这个?

    string imgUrl = @"C:'blah.jpg"; //Loaded from DB
    System.IO.FileInfo f = new System.IO.FileInfo(imgUrl);
    string fileName = f.Name.Split('.')[0];