在我的控制檯應用程序中,我正在從給定的URL下載.xlsx文件。如果我將下載路徑設置爲「C:\ Temp \ Test.xlsx」,則下載按預期工作,我可以在Excel中打開該文件。但是,如果我將路徑設置爲「C:\ SomeFolder \ SomeSubfolder \ Test.xlsx」,我會在指定位置得到名稱爲「Test.xlsx」的文件夾。WebClient.DownloadFile的令人費解的行爲
這裏就是我下載的文件中的代碼:
public void DownloadFile(string sourceUrl, string targetPath
{
try
{
CreateDirectoryIfNotExists(targetPath);
using (WebClient webClient = new WebClient())
{
webClient.UseDefaultCredentials = true;
webClient.DownloadFile(sourceUrl, targetPath);
}
}
catch(Exception e)
{
Console.WriteLine(e.Message);
Console.Write(e);
Console.ReadLine();
}
}
這裏是我創建目錄的方法,如果不存在,就:
private void CreateDirectoryIfNotExists(string targetPath)
{
if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(targetPath)))
{
System.IO.Directory.CreateDirectory(targetPath);
}
}
結果與targetPath
設置爲「C:\ Temp \ Test.xlsx」:
結果與targetPath
設置爲 「C:\ SomeFolder \ SomeSubfolder \ Test.xlsx」:
有,爲什麼我的文件保存爲一個文件夾,而不是作爲一個文件的原因嗎?
任何幫助表示讚賞。
什麼* *究竟是有問題的文件夾?如果將文件從'c:\ temp'複製到另一個文件夾,您看到了什麼? –
粘貼你的所有代碼?您可能正在做其他事情,例如在某處調用Directory.CreateDirectory。 嘗試刪除「Test.xlsx」文件夾並再次運行您的程序。如果重新創建目錄是您的問題 – wal