2015-07-23 1 views
-5

У меня возникла странная проблема.File.Exists работает в C#, но не работает в VB.NET

VB.NET - не работает

Dim stringData As String = Encoding.UTF8.GetString(buffer, 0, buffer.Length)  
If Not [String].IsNullOrEmpty(stringData) AndAlso System.IO.File.Exists(stringData) Then 
    Process.Start(stringData) 
End If 

Работа

If Not [String].IsNullOrEmpty(stringData) AndAlso System.IO.File.Exists(stringData) Then 
     Process.Start(stringData) 
End If 
Process.Start(stringData) 

C# - рабочий:

string stringData = Encoding.UTF8.GetString(buffer, 0, buffer.Length); 

if (!String.IsNullOrEmpty(stringData) && System.IO.File.Exists(stringData)) 
{ 
    Process.Start(stringData); 
} 

Может кто-нибудь объяснить мне, что я делаю неправильно?

+3

Я не уверен, но это _seems_ как человека проблемы. Вы уверены, что путь к файлу равен _exact_? –

+1

Поместите в точку останова и проверьте, что такое переменная 'stringData' для каждой базы кода. – Thraka

+0

Вы пробовали отлаживать? Вы пытались выполнить его без использования строковой переменной? i.e: 'Process.Start (@" Full-Path ")' –

ответ

1

Попробуйте так:

Dim stringData As String = GetFolderPath(SpecialFolder.MyDocuments) & "\my.exe" 'For example 

      If Not String.IsNullOrEmpty(stringData) Then 

       If File.Exists(stringData) Then 

        Process.Start(stringData) 

       Else 

        MsgBox("File couldn't be found.", vbCritical, "MyApp") 

       End If 

      End If