我正在尝试测试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")
答案 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