2014-09-19 44 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