如何测试Windows虚拟存储中是否存在文件

时间:2014-10-29 10:36:52

标签: vb.net

我正在尝试测试Windows 8.1 PC上的虚拟存储中是否存在文件。如果我去Windows资源管理器,我可以看到它但是当我使用下面的代码时,它会将其视为文件不存在。

Dim virtualFilePath As String = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Local\VirtualStore\Windows\fsp.bin")

If System.IO.File.Exists(virtualFilePath) Then
  Console.WriteLine("File exists in the virtual store")
End If

我哪里错了?

修改 我的错误。由于意外地包含一个额外的“本地”目录,我得到了虚拟商店的文件路径错误。以下代码有效:

Dim virtualFilePath As String = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "VirtualStore\Windows\fsp.bin")

3 个答案:

答案 0 :(得分:2)

问题是你指向错误的目录,因为

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)'<---- points to the 
'<--- C:\Users\me\AppData\Local

当你将它与"Local\VirtualStore\Windows\fsp.bin"结合使用会导致一个未知目录,因为它会产生路径C:\Users\me\AppData\Local\Local\VirtualStore\Windows\fsp.bin正如你所说的那样,当你需要消除这个时,需要尝试下面的代码

Dim virtualFilePath As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData).ToString & "\VirtualStore\Windows\fsp.bin"
If System.IO.File.Exists(virtualFilePath) Then
   Console.WriteLine("File exists in the virtual store")
End If

答案 1 :(得分:1)

事实证明,设置为虚拟商店的文件路径不正确。删除额外的“本地”目录后,上面的代码会正确指示该文件存在。

答案 2 :(得分:0)

我通常使用FileInfo类,它很有效。

    Dim f As New IO.FileInfo(Path)

    If f.Exists Then
        'do something
    End If