我需要检查文件是否存在以及文件是否存在,然后应将文件覆盖。 如果我的硬编码路径用于我自己的计算机,则工作正常,但如果在另一台PC上使用,则会出现错误。我该如何检查并覆盖文件?
我已经问了Google几个小时,但没有找到解决方法。
Dim gamecfg As String = "\Riot Games\League of Legends\Config\game.cfg"
If System.IO.File.Exists(gamecfg) = True Then
on.Visible = True
off.Visible = True
Else
MsgBox("Game.cfg was not found", MsgBoxStyle.Critical, "Error")
End
End If
Dim gamecfgSON As String = "\Riot Games\League of Legends\Config\game.cfg"
Dim cfgWriterSON As New System.IO.StreamWriter(gamecfgSON)
cfgWriterSON.Write(RichTextBox1.Text)
cfgWriterSON.Close()
因此,如果在以下位置找到文件作为示例:E:\ Games \ League of Legends \ 然后说找不到Game.cfg
希望你能帮助我。
答案 0 :(得分:1)
您有几种可能性:
检查游戏是否写入任何包含路径的注册表项。如果是这种情况,那么很有可能在任何地方都有相同的注册表项名称。
在文件所在的对话框中询问用户,提示其默认安装路径。
使用包含相应路径的命令行参数来调用您的应用程序。
搜索驱动器,但这可能会非常慢。
答案 1 :(得分:0)
您通常可以通过以下几种方式之一找到文件:
启发式搜索:在所有驱动器上的所有文件夹中搜索“防暴游戏”和“英雄联盟”,限制搜索深度并避免明显的陷阱,例如“ Windows *”,“ $ Recycle.Bin”等)。通常,您会进行多次迭代,例如首先仅搜索名称中带有“游戏”的文件夹。
答案 2 :(得分:0)
尝试找出父路径 File dir = new File( System.getProperty("user.dir") + "/.") String parentPath = dir.getParentFile().getName()