FolderBrowserDialog 不在选定的位置保存文件
FolderBrowserDialog not saving files where selected
我正在尝试制作一个 YouTube 下载器来取乐。我看了一些教程并完成了它,但是当我下载它并 select 路径时,如果我选择 "Desktop",它不会下载,但如果我选择桌面上的文件夹,它会下载它但是不在文件夹里,在桌面上。我试图修复它,但没有任何效果。
我该如何解决?
这是我的代码:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles download.Click
If url.Text <> "" Then
If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then
stato.Text = "Downloading"
Dim video = YouTube.Default.GetVideo(url.Text)
FolderBrowserDialog1.RootFolder = Environment.SpecialFolder.DesktopDirectory
File.WriteAllBytes(FolderBrowserDialog1.SelectedPath & video.FullName, video.GetBytes())
stato.Text = "Done!"
End If
Else
MsgBox("Enter an URL!")
End If
End Sub
如果 SelectedPath 没有该文件,请转到上一级,因为该文件很可能就在那里。这是您的修复程序,因此它会转到正确的文件夹:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles download.Click
If url.Text <> "" Then
FolderBrowserDialog1.RootFolder = Environment.SpecialFolder.DesktopDirectory
If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then
stato.Text = "Downloading"
Dim video = YouTube.Default.GetVideo(url.Text)
File.WriteAllBytes(System.IO.Path.Combine(FolderBrowserDialog1.SelectedPath, video.FullName), video.GetBytes())
stato.Text = "Done!"
End If
Else
MsgBox("Enter an URL!")
End If
End Sub
请注意,我建议您改为使用 backgroundworker 组件进行下载。此外,理想情况下,您应该在保存时将字节保存到后台工作程序中的文件中,这样字节不会全部进入内存,而是直接进入您的文件。不过,这些建议不在您的问题范围内。
我正在尝试制作一个 YouTube 下载器来取乐。我看了一些教程并完成了它,但是当我下载它并 select 路径时,如果我选择 "Desktop",它不会下载,但如果我选择桌面上的文件夹,它会下载它但是不在文件夹里,在桌面上。我试图修复它,但没有任何效果。
我该如何解决?
这是我的代码:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles download.Click
If url.Text <> "" Then
If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then
stato.Text = "Downloading"
Dim video = YouTube.Default.GetVideo(url.Text)
FolderBrowserDialog1.RootFolder = Environment.SpecialFolder.DesktopDirectory
File.WriteAllBytes(FolderBrowserDialog1.SelectedPath & video.FullName, video.GetBytes())
stato.Text = "Done!"
End If
Else
MsgBox("Enter an URL!")
End If
End Sub
如果 SelectedPath 没有该文件,请转到上一级,因为该文件很可能就在那里。这是您的修复程序,因此它会转到正确的文件夹:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles download.Click
If url.Text <> "" Then
FolderBrowserDialog1.RootFolder = Environment.SpecialFolder.DesktopDirectory
If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then
stato.Text = "Downloading"
Dim video = YouTube.Default.GetVideo(url.Text)
File.WriteAllBytes(System.IO.Path.Combine(FolderBrowserDialog1.SelectedPath, video.FullName), video.GetBytes())
stato.Text = "Done!"
End If
Else
MsgBox("Enter an URL!")
End If
End Sub
请注意,我建议您改为使用 backgroundworker 组件进行下载。此外,理想情况下,您应该在保存时将字节保存到后台工作程序中的文件中,这样字节不会全部进入内存,而是直接进入您的文件。不过,这些建议不在您的问题范围内。