如何发现用户的桌面文件夹?

Mc *_*FTY 5 vb.net visual-studio-2010

我在visual studio中做了一个小应用程序,它在模拟器中加载了一个ROM.我有两个模拟器和20个ROM.

我做了一个表格并添加了几个按钮.单击按钮时,它会打开一个新表单并关闭旧表单.然后在新表单上我有四个按钮:每个按钮在模拟器中加载不同的ROM.因此,当您按下Button1时,将触发此代码:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles yellow.Click
Shell("C:\Users\shifty\Desktop\pokemon games\Emulator\VBA\VisualBoyAdvance.exe ""C:\Users\shifty\Desktop\pokemon games\Roms\Yellow\Pokemon Yellow.gb""", vbNormalFocus)
End Sub
Run Code Online (Sandbox Code Playgroud)

它工作正常 - 我点击它,它在模拟器中加载游戏.我遇到问题的是文件路径.如果我将此应用程序发送给朋友,它仍然会查找"C:\ Users\shifty\Desktop \" - 但这是在我的计算机上,而不是他的.

有没有办法让应用程序在他的计算机上查找文件(不将文件路径更改为(C:\ Users \""他的用户名""\ Desktop))

Spe*_*nce 38

Environment.GetFolderPath(Environment.SpecialFolder.Desktop)

这将解析为当前用户的桌面文件夹.

它甚至可以在XP,vista和Windows 7之间正常工作.

  • @Mc SH1FTY:来*开!*@Pwninsteing和@Spence都给了你正确的答案.他们还要把汤匙喂给你吗?提示自己解决:`Print Environment.GetFolderPath(Environment.SpecialFolder.Desktop))`.在代码中查看匹配结果. (4认同)
  • @Mc SH1FTY:如果你瞧不起这里的专家免费提供的优秀,有效的答案,那就是"jibberish",那么显然你是在错误的网站上,你可能想去试试其他的,你看起来更好的知道.这里有很多其他的初学者,这里的人们很乐意帮助他们并且一直这样做.幸运的是,只有少数初学者抱怨舀勺 - 很少有人会在抱怨时舀勺. (3认同)

the*_*dsz 8

老帖子,但我不得不支持Mc Shifty.你不能假设每个人都是编码专家.如果他们那么他们就不会在这里问这样的问题.

上面给出的答案都没有完整

Environment.GetFolderPath(Environment.SpecialFolder.Desktop)) <<<包括和额外的) Environment.GetFolderPath(Environment.SpecialFolder.Desktop)); <<<额外的)和; 是C或java而不是VB,他显然是通过他的示例代码使用的.

这两个只给你一半所需的代码来生成可用的东西.

Dim s As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
Run Code Online (Sandbox Code Playgroud)

上面的代码将为您提供所需的结果,c:\ users\shifty\desktop

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles yellow.Click
    Dim s As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
    Shell(s & "\Desktop\pokemon games\Emulator\VBA\VisualBoyAdvance.exe " & s & "\pokemon games\Roms\Yellow\Pokemon Yellow.gb""", vbNormalFocus)
End Sub
Run Code Online (Sandbox Code Playgroud)

  • 反正是不正确的,不是吗?这将产生**c:\ users\shifty\desktop\Desktop\pokemon games\Emulator\VBA\VisualBoyAdvance.exe**.注意"桌面\桌面" (2认同)

Joh*_*rer -2

您需要使用文件打开对话框来选择这两个文件的路径。 是一个例子。

然后,您在代码中使用这两个路径:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles yellow.Click
    Shell(emulatorPath + "\"" + romPath + "\"", vbNormalFocus)
End Sub
Run Code Online (Sandbox Code Playgroud)

  • 抱歉,这一切对我来说毫无意义 (2认同)