2014-09-19 41 views
0

我真的不明白爲什麼引發異常。 我創建了此代碼,用於對許可證的正確性進行一些檢查。 如果試用軟件正在創建隱藏文件,則會發生函數isittrial,然後使用File.exist檢查此文件。 問題是以下幾點:FileExist不工作​​vb.net

該文件是由isittrial創建的,但出於某種奇怪的原因,您啓用file.exist的異常,我該如何解決它?

我真的不明白爲什麼它不起作用。

isittrial() 'this function make the file to check 

    Dim percorsoCompleto As String = System.Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\Software\cc.txt" 

    Try 
     If My.Computer.FileSystem.FileExists(directory) Then 
      Dim fileReader As String 
      Dim dire As String = System.Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\Software\cc.txt" 
      fileReader = My.Computer.FileSystem.ReadAllText(directory, 
       System.Text.Encoding.UTF32) 

      Dim check = DeCryptIt(fileReader, "aspanet") 
      Dim datadecripted As String = DeCryptIt(Registry.GetValue("HKEY_CURRENT_USER\Software\cc", "end", ""), "aspanet") 

      If Date.Now < check And check <> datadecripted Then 

       MsgBox("License not valid", MsgBoxStyle.Critical, "Attention!") 
       DeActivate() 
       ForceActivation() 
      Else 
      End If 

     Else 
      MsgBox("License not valid", MsgBoxStyle.Critical, "Attention!") 
      DeActivate() 
      ForceActivation() 
     End If 
    Catch ex As Exception 
     MsgBox("License not valid", MsgBoxStyle.Critical, "Attention!") 
     'DeActivate() 
     'ForceActivation() 
    End Try 
+1

更加故障安全呼叫你確定要測試文件,而不是目錄

Dim percorsoCompleto As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) percorsoCompleto = Path.Combine(percorsoCompleto, "Software", "cc.txt") Try If My.Computer.FileSystem.FileExists(percorsoCompleto) Then Dim fileReader As String fileReader = My.Computer.FileSystem.ReadAllText(percorsoCompleto, System.Text.Encoding.UTF32) ..... 

通知?這兩個錯誤消息是相同的,所以您不知道錯誤是異常還是隻是一個調用,告訴您無法詢問是否存在傳遞目錄名的文件 – Steve 2014-09-19 13:08:57

+0

「目錄」的值是什麼? – 2014-09-19 13:09:46

+0

我檢查文本文件是否存在。 – johsns 2014-09-19 13:18:39

回答

1

此行

If My.Computer.FileSystem.FileExists(directory) Then 

似乎測試合格的目錄名的文件是否存在(或空字符串或什麼的,我們可以看到這個變量的初始化方式)。在任何情況下,結果都是錯誤的。

然後你的代碼跳到一個else塊,並且出現相同的錯誤信息,例外情況是愚弄你的錯誤。

嘗試,而不是說我已經刪除了路徑的級聯一起Path.Combine

+0

所以...有什麼問題?我認爲該代碼捕獲另一個異常事實上,我得到這個:在此代碼中的NullReferenceException – johsns 2014-09-19 13:32:24

+0

但這可能是另一個問題。看來現在的錯誤信息是不同的,所以前面的錯誤已經解決了。嘗試將Try/Catch註釋掉,看看哪一行你會得到異常 – Steve 2014-09-19 13:38:20

+0

,我可以看到行號?我從應用程序中得到的錯誤,而不是當我調試時。 – johsns 2014-09-19 13:39:59