Hiee伙计们,
我有几个图片网址,我可以从中下载数据并将其保存在db中。我使用(imageurl.Split('/'))[(imageurl.Split('/').Length) - 1];
来创建文件名。
问题是,有一些网址包含查询字符串。由于我得到的文件名具有模式imgname.img_type_extension?somefield=somevalue
如何让filename.extension从上面的子串中留下查询字符串?
感谢您停止......
答案 0 :(得分:3)
var path = imageurl.Split('?')[0];
var fileName = Path.GetFileNameWithoutExtension(path);
编辑:对于文件名WITH扩展名,只使用Path
var path = imageurl.Split('?')[0];
var fileName = Path.GetFileName(path);
答案 1 :(得分:2)
怎么样
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];
答案 2 :(得分:2)
为什么不让UriBuilder为你做解析?
var url = new UriBuilder("http://x.com/xyz/imgname.img_type_extension?somefield=somevalue");
string filename = Path.GetFileName(url.Path);
答案 3 :(得分:1)
也许这个?
string imgUrl = @"C:\blah.jpg"; //Loaded from DB
System.IO.FileInfo f = new System.IO.FileInfo(imgUrl);
string fileName = f.Name.Split('.')[0];