我想存储来自API的文件,我已经尝试了以下代码,但给出了错误。
string StrFileName = result.LabelDownload.Href;
string FilePath = ConfigurationManager.AppSettings["FilePath"].ToString();
string dir = string.Format("{0}{1:yyyy-MM}\\", FilePath, DateTime.Now);
// Save the uploaded file.
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir);
WebClient wc = new WebClient();
wc.DownloadFile(StrFileName, dir);
错误:WebClient请求期间发生异常。 内部例外:文件名,目录名或卷标语法不正确。
如何从Web下载文件并将其存储在本地文件夹中?我需要将该路径保存在数据库中
答案 0 :(得分:3)
WebClient.DownloadFile
方法要求下载文件的文件名,而不仅仅是目录。因此,要么只传递文件名,它将文件保存到apps目录,要么提供完全限定的路径。
string sourceFileName =
result.LabelDownload.Href;
string filePath = ConfigurationManager.AppSettings["FilePath"].ToString();
string dir = string.Format("{0}{1:yyyy-MM}", filePath, DateTime.Now);
// Save the uploaded file.
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir);
WebClient wc = new WebClient();
wc.DownloadFile(sourceFileName, Path.Combine(dir, sourceFileName));
源文件也是如此。这是doc。
也请看一下c# naming conventions,因为局部变量通常是小写字母。
答案 1 :(得分:0)
我解决了,
WebClient wc = new WebClient();
wc.DownloadFile(StrFileName, dir + filenameWithoutPath);
在没有添加文件名之前,所以我们需要添加文件名,在我的情况下,它是filenameWithoutPath,它现在可以正常工作。