如何在c#中下载带有文件名的文件
本文关键字:文件名 文件 下载 | 更新日期: 2023-09-27 18:16:22
我试图使用WebClient
从URL下载文件,问题是.DownloadFile()
函数需要URL,并将给保存的文件命名,但是当我们访问URL时,它已经有了文件名。
我如何保持文件名,因为它是在URL?
如果我正确理解你的问题,这应该可以工作:
private string GetFileNameFromUrl(string url)
{
if(string.IsNullOrEmpty(url))
return "image.jpg"; //or throw an ArgumentException
int sepIndex = url.LastIndexOf("/");
if(sepIndex == -1)
return "image.jpg"; //or throw an ArgumentException
return url.Substring(sepIndex);
}
那么你可以这样使用:
string uri = "http://www.mywebsite.com/res/myimage.jpg";
WebClient client = new WebClient();
client.DownloadFile(uri, this.GetFileNameFromUrl(uri));
如果你无法控制url本身,你可能需要对它做一些验证,例如Regex.
不解析url,我建议使用函数Path.GetFileName():
string uri = "http://yourserveraddress/fileName.txt";
string fileName = System.IO.Path.GetFileName(uri);
WebClient client = new WebClient();
client.DownloadFile(uri, fileName);
怎么样:
string url = "http://www.mywebsite.com/res/myimage.jpg?guid=2564";
Uri uri = new Uri(url);
string fileName = uri.Segments.Last();
注意: Last()是Linq的扩展方法。