删除包含应用程序名称的文件 (VB.NET)

Delete A File That Contains The App Name (VB.NET)

这是我正在使用的代码:

Dim file As String
    Dim prefetchPath As String
    Dim FileName As String = My.Application.Info.AssemblyName
    prefetchPath = Environment.GetEnvironmentVariable("windir", EnvironmentVariableTarget.Machine) & "\Prefetch"
    For Each file In IO.Directory.GetFiles(prefetchPath)
        If file.Contains(FileName) Then
            IO.File.Delete(file)
        End If
    Next

我不知道为什么如果我使用 FileName 它不起作用。但是如果我使用这个代码就可以了

If file.Contains("Example.exe") Then
            IO.File.Delete(file)
        End If

我想确保如果有人更改了应用程序的名称,代码将以相同的方式工作(我已经 运行 文件作为管理员) 帮帮我谢谢。

我的猜测是 AssemblyName 只是 returns 没有扩展名的名称,请尝试包含 .exe。此外,值得注意的是,您可以使用 IO.DirectoryInfo class 并在 GetFiles 方法中传递文件名来切断 For/Each 循环。

这是一个简单的例子:

Dim prefetchPath As String = IO.Path.Combine(Environment.GetEnvironmentVariable("windir", EnvironmentVariableTarget.Machine), "Prefetch")
Dim FileName As String = My.Application.Info.AssemblyName & ".exe"

If New IO.DirectoryInfo(prefetchPath).GetFiles(FileName).Count > 0 Then
    IO.File.Delete(IO.Path.Combine(prefetchPath, FileName))
End If