2014-02-15 3 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 

программа переходит.

Когда я отладка, и я шаг в код построчно, то программа выполняется и возвращает этот файл существует, используя параметризованную строке (первый пример коды)

  • Я установить разрешение файла/папки для полного контроля для всех (только для этого теста). Файл не читается и «готов к архивированию».

Любые идеи?

правки:

Я изменил код, основанный на предложениях, такие как:

  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

[sigh] Что показывает ваш отладчик в строке 'sNewFileName'? Если вы загружаете строковое выражение в промежуточное значение строки и проверяете это, что там? –

+3

имеет 'sNewFileName' также расширение? –

ответ

0

Поместите файл в строку переменной

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

Затем сделайте чек, как так ...

If File.Exist(nStr) Then ... 

EDIT Дайте этому попытку .. .

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

Положите точку останова на файл if.exist, когда он разрывает зависание над переменной nStr и убедитесь, что это правильно. – 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

Но это работает. Даже если ... вы правы - это ПЛОХАЯ ПРАКТИКА. –

Смежные вопросы