2014-02-15 24 views
0

我有一個文件創建的OCR程序,我試圖創建後訪問。在我的代碼中,我正在檢查文件是否存在。如果我這樣檢查:代碼說文件不存在,但存在

If File.Exists("C:\inetpub\wwwroot\usbtest\Portals\0\uploads\" + sNewFileName) Then 

該程序說該文件不存在。 但是,如果我設置這樣的路徑:

If File.Exists("C:\inetpub\wwwroot\usbtest\Portals\0\uploads\8application2_0001.txt") Then 

程序繼續。

當調試和我踏入由線的代碼行,則程序執行並返回該文件是否存在使用參數化的串(第一代碼例如)

  • 我已設置的文件/文件夾的權限完全控制每個人(僅限本次測試)。 該文件不是隻讀的,「準備歸檔」。

任何想法?

EDITS:

我修改的基礎上建議,如代碼:

  Dim sPortalPath, sFullPath, sDirPath As String 
      sDirPath = "C:\inetpub\wwwroot\usbtest\" 
      sPortalPath = "Portals\0\uploads\" 
      sFullPath = sDirPath & sPortalPath & sNewFileName 

      If File.Exists(sFullPath) = True Then 

調試器給了我下面的: enter image description here

當我運行程序時,它告訴我,它不存在! (我拉我的頭髮)

+1

確實sNewFileName真的有 「8application2_0001.txt」 作爲價值的鏈接?也許你在它之前加了一個反斜槓。 – Davlog

+3

[嘆氣]你的調試器顯示的'sNewFileName'字符串是什麼?如果將字符串表達式加載到中間字符串值並檢查它,那裏有什麼? –

+3

'NewFileName'是否也包含擴展名? –

回答

0

把你的文件中的一個字符串變量

Dim nStr As String = "C:\inetpub\wwwroot\usbtest\Portals\0\uploads\" & sNewFileName) 

然後做你的支票所以......

If File.Exist(nStr) Then ... 

編輯試試這個.. 。

Dim myFilePath as string=Server.MapPath ("~/myfolder/" & sNewFileName) 
If File.Exists(myFilePath) Then 
'do my work here' 
End If 
+0

當斷開將鼠標懸停在nStr變量上並確保它正確時,在if file.exist上放置一個斷點。 – Codexer

0

在VB中,你應該連接字符串與&運算符

If File.Exists("C:\inetpub\wwwroot\usbtest\Portals\0\uploads\" & sNewFileName) Then 

代替

If File.Exists("C:\inetpub\wwwroot\usbtest\Portals\0\uploads\" + sNewFileName) Then 
+0

但它也適用。即使 - 你是對的 - 這是一個壞習慣。 –

相關問題