我正在尝试将初始目录设置为downloads文件夹,但它不起作用,即使它是一个完全有效的路径。这是我正在使用的代码:
Private Sub btn_AddMod_Click(sender As Object, e As EventArgs) Handles btn_AddMod.Click 'This brings up the file dailoge
Dim Downloads As String = "\Downloads" 'A variables called \Downloads
Dim UserprofilePath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) 'This finds the directory to the User profile environment variable
Dim Downloadspath As String = UserprofilePath.Insert(0, "") + Downloads 'This adds \downloads to userpath
OpenFileDialog1.InitialDirectory = Downloadspath 'This sets the Open File Dialog to go to the users downloads
txt_setmodname.Text = Downloadspath 'This is used for debugging, it sets a textbox to the path
OpenFileDialog1.ShowDialog() 'This opens the Dialog
End Sub
当我复制输出文本时,路径完全有效,但不是带我到路径,而是带我到MyDocuments
答案 0 :(得分:2)
那里有一些古怪的代码。我不确定为什么它不起作用而且我对发现并不太感兴趣。我刚测试了这个,它可以按你的要求工作:
Using ofd As New OpenFileDialog
ofd.InitialDirectory = IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads")
ofd.ShowDialog()
End Using
显然,您可以使用在设计器中创建的OpenFielDialog
,而不是在代码中创建。
顺便说一句,应该注意用户的下载文件夹不一定在该位置。我在我的D:驱动器上,而我的个人文件夹在我的C:驱动器上。对于保留C:仅针对系统文件的人,他们所有的库等都可能位于辅助驱动器上。不幸的是,没有简单的方法来获取Downloads文件夹的路径,就像Documents和其他文件一样。我猜测路径存储在注册表等中,但我不知道在哪里。
答案 1 :(得分:0)
我进一步研究了它,发现下载路径有一个注册表项,所以我使用了它,这似乎有效,我的代码如下。
Private Sub btn_AddMod_Click(sender As Object, e As EventArgs) Handles btn_AddMod.Click
Using ofd As New OpenFileDialog
Dim DownloadsPath = My.Computer.Registry.GetValue(
"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\", "{374DE290-123F-4565-9164-39C4925E467B}", Nothing)
ofd.InitialDirectory = DownloadsPath
ofd.ShowDialog()
End Using
我不确定为什么其他方法无法正常工作,因为某些原因它总是把我带到MyDocuments文件夹。