当我对文本文件的路径进行硬编码时,此代码可以完美运行。但是正如建议的那样,最好不要硬编码。我以这种方式尝试过,即使该txt文件存在,也仍然找不到。
Dim Findstring = IO.File.ReadAllText(Directory.GetCurrentDirectory() + " Redmi03-JCO0531-WX_" + DateTime.Now.ToString("yyyyMMdd") + ".txt")
Dim Lookfor As String = Format(Now, "MM/dd/yyyy HH:mm:ss")
'MessageBox.Show(Findstring.ToString())
showdat.Text = Lookfor
If Findstring.Contains(Lookfor) Then
'MsgBox("Found: " & Lookfor)
For Each prog As Process In Process.GetProcesses
If prog.ProcessName = "Redmi03-JCO0531-WX" Then
prog.Kill()
Process.Start(Directory.GetCurrentDirectory() + "Redmi03-JCO0531-WX.exe")
End If
Next
End If
答案 0 :(得分:2)
我想你的问题在这一行
Dim Findstring = IO.File.ReadAllText(Directory.GetCurrentDirectory() + " Redmi03-JCO0531-WX_" + DateTime.Now.ToString("yyyyMMdd") + ".txt")
让我们分解一下,看看每个部分的真正含义。
首先在代码文件的顶部添加
Imports System.IO
然后在您的Form类中
Private Sub OPCode()
Dim dir As String = Directory.GetCurrentDirectory()
MessageBox.Show(dir)
Dim TextFileName = " Redmi03-JCO0531-WX_" & DateTime.Now.ToString("yyyyMMdd") & ".txt"
MessageBox.Show(TextFileName)
Dim CompletePath = Path.Combine(dir, TextFileName)
MessageBox.Show(CompletePath)
Dim Findstring = IO.File.ReadAllText(CompletePath)
End Sub
实际上,您可以添加一个断点并逐步检查代码中的值,而不是检查所有这些愚蠢的消息框。如果第三个MessageBox没有显示文件的实际位置,则它将返回到绘图板。
编辑
编辑以获取桌面上的路径。
Private Sub OPCode()
Dim dir As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
MessageBox.Show(dir)
Dim TextFileName = "ChinaUMS Bank\Redmi05\Redmi03-JCO0531-WX_" & DateTime.Now.ToString("yyyyMMdd") & ".txt"
MessageBox.Show(TextFileName)
Dim CompletePath = Path.Combine(dir, TextFileName)
MessageBox.Show(CompletePath)
' Dim Findstring = IO.File.ReadAllText(CompletePath)
End Sub
请注意,您必须对子文件夹进行硬编码。特殊文件夹将获得当前用户的桌面路径。