我真的无法理解为什么会触发异常。 我创建了这段代码,对许可证的正确性进行了一些检查。 如果试用软件正在创建隐藏文件,则会发生此功能,然后使用File.exist检查此文件。 问题如下:
该文件是由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
答案 0 :(得分:1)
这一行
If My.Computer.FileSystem.FileExists(directory) Then
似乎测试是否存在传递目录名称的文件(或空字符串或其他什么,我们可以看到如何初始化此变量)。在每种情况下,结果都是错误的。
然后你的代码跳转到一个else块,同样的异常错误信息会愚弄你对错误的看法。
尝试改为
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)
.....
请注意,我已通过对Path.Combine
进行更多故障安全调用删除了路径并置