转到上层文件夹/目录VB.NET

时间:2016-02-09 06:53:01

标签: vb.net

我正在使用ListView制作文件/文件夹浏览器,当点击文件夹时,它会显示其内容,但我无法让它回到我打开该文件夹之前的位置,或更好进入上层文件夹。例如我在D:\Folder1\Subfolder1\Subfolder并且我想要转到它的上层文件夹,我应该在D:\Folder1\Subfolder1,每次我点击一个按钮。

我有这段代码,但它的作用是取代所有路径,使它看起来像D:\Folder1,我不能再回头了。顺便说一句,Textbox的默认值/文字为D:\Folder

这是我的代码:

Dim lvs As String
Private Sub ListView1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.DoubleClick
    lvs = ListView1.SelectedItems(0).Text.ToString
    Form2.TextBox1.Text = Form2.TextBox1.Text & "\" & lvs
End Sub

Private Sub Button5_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
    Dim s As String = Form2.TextBox1.Text
    s.Replace("\" & lvs, " ").TrimEnd()
End Sub

更新

嗨,我更新了我的代码,我做的是我将ListView项放在Array中,我正在删除最后一个元素(最后一个文件夹路径),它工作正常。但是当我运行我的代码时,它只执行一次并且不能重复,可能是什么错误?

代码:

Dim lvs As New List(Of String)
Private Sub ListView1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.DoubleClick
    If ListView1.SelectedItems.Count > 0 Then
        For Each item As ListViewItem In ListView1.SelectedItems
            lvs.Add(item.Text)
        Next
    End If
        Form2.TextBox1.Text = Form2.TextBox1.Text & "\" & ListView1.SelectedItems(0).Text
End Sub

 Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
    Label5.Text = Label5.Text.Replace("\" & lvs.ElementAt(lvs.Count - 1), "")
End Sub

4 个答案:

答案 0 :(得分:1)

您需要在字符串变量中存储当前文件夹的完整路径。然后,您将通过以下方式获取父文件夹的路径:

Dim parentPath As String = IO.Path.GetDirectoryName(currentPath)

完成后,您需要将新路径设为当前路径,这可能是您之前没有做过的事情。您可能只是使用相同的基本路径来获取父级。

以下是一个很好的示例:https://code.msdn.microsoft.com/windowsapps/Get-upper-folders-in-443e975a

希望这对你有所帮助。

答案 1 :(得分:0)

简单方法:

 php artisan up

如果您想要升级2级,请尝试Dim path As String = @"C:\Folder1\Folder2\Folder3\Folder4" Dim newPath As String = Path.GetFullPath(Path.Combine(path, @"..\"));

答案 2 :(得分:0)

Dim Child As String = "C:\Parent\Child"
Dim Parent As String = System.IO.Directory.GetParent(Child).FullName

答案 3 :(得分:0)

有人帮我处理了我只需要添加lvs.RemoveAt(lvs.Count - 1)的更新代码,因为我只删除Label中的项目而不是List(Of String)中的项目(我认为是一个数组,哈哈)。

我的Button应如下所示:

Label5.Text = Label5.Text.Replace("\" & lvs(lvs.Count - 1), "")
lvs.RemoveAt(lvs.Count - 1)