2015-10-14 122 views
3

考慮的button1_Click下面的代碼IO.File.Exists()始終返回false

Dim stFile as String = IO.Path.Combine(Server.MapPath("~/"), "uploads/text/file1.txt") 
If IO.File.Exists(stFile) Then 
    ' Do some processing 
End If 

已存在總是在上面的代碼塊

返回false這裏是Button2_Click代碼塊

Dim stFile as String = IO.Path.Combine(Server.MapPath("~/"), "uploads/text/file1.txt") 
Response.Clear() 
Response.ContentType = "text/plain" 
Response.AppendHeader("content-disposition", "attachment;filename=abc.txt") 
Response.TransmitFile(stFile) 
Response.Flush() 
End If 

這總是下載相同的文件。可能是什麼問題呢?

+1

「stFile」的值是什麼,使用調試er –

+0

如果uploads文件夾位於您項目的根目錄中,那麼只需使用以下命令:Dim stFile as String = Server.MapPath(「〜/ uploads/text/file1.txt」)' –

回答

2

前段時間我也對這個問題感到崩潰,發現使用「/」和特殊字符可能會產生這種情況。

Path.Combine總是返回帶有「\」的路徑。

嘗試改變uploads/text/file1.txtuploads\text\file1.txt

如果生成動態文件名的時候,儘量避免包括可能需要的URL編碼如%([space]

一些概念的任何特殊字符在這篇文章中可能看起來不合邏輯,但是使用\,/和特殊字符的組合浪費了我的大約8-10小時