vb.net 磁盘文件列表,界面如图,在.net下如何实现?

作者&投稿:兆胀 (若有异议请与网页底部的电邮联系)
vb.net 如何实现对所有盘符下文件的选取~

给你一个遍历所有盘符下的文件夹的例子
加一个遍历文件的就可以了。
TreeNode node = new TreeNode("我的电脑");
treeView.Nodes.Add(node); //加入一个我的电脑节点

string[] drivesName = System.IO.Directory.GetLogicalDrives() //取得驱动器列表的集合
foreach(string name in drivesName) //用foreach遍历集合
{
TreeNode drivesNode = new TreeNode(name);
node.Nodes.Add(drivesNode); //加到我的电脑节点下

利用线程,和计时器,Function GetFolderSize从网上借鉴的,不知道为什么IO类不支持不同分区移动,所以移动目录只能在相同分区,设计界面如图,代码如下
Imports System.Threading
Imports System.IO
Imports System.Text
Public Class Form1
Dim SourceDir, DestDir As String
Dim SourceLen As Integer
'返回文件夹大小
Private Function GetFolderSize(ByVal DirPath As String, Optional ByVal IncludeSubFolders As Boolean = True) As Long
Dim lngDirSize As Long
Dim objFileInfo As FileInfo
Dim objDir As DirectoryInfo = New DirectoryInfo(DirPath)
Dim objSubFolder As DirectoryInfo
Try
For Each objFileInfo In objDir.GetFiles()
lngDirSize += objFileInfo.Length
Next
If IncludeSubFolders Then
For Each objSubFolder In objDir.GetDirectories()
lngDirSize += GetFolderSize(objSubFolder.FullName)
Next
End If
Catch
End Try
Return lngDirSize
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim T As New Thread(AddressOf DirMove)
CheckForIllegalCrossThreadCalls = False
SourceDir = TextBox1.Text
DestDir = TextBox2.Text
SourceLen = GetFolderSize(SourceDir)
ProgressBar1.Value = 0
Timer1.Interval = 100
Timer1.Start()
T.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If Directory.Exists(DestDir) = False Then Exit Sub
ProgressBar1.Value = Math.Round(GetFolderSize(DestDir) / SourceLen, 2) * 100
End Sub
Private Sub DirMove()
Me.Text = "正在移动..."
Directory.Move(SourceDir, DestDir)
Me.Text = "移动完成!"
ProgressBar1.Value = 100
RichTextBox1.Text += DestDir & Environment.NewLine
End Sub
End Class

预先准备三个图标文件,用于树型控件中显示磁盘符号和文件夹的图像之用。

1、窗体上添加控件如下:

组合框控件 ComboBox1,树型控件 TreeView1,列表框控件 ListBox1,图像列表控件 ImageList1。

选中TreeView1,设置其ImageList属性为ImageList1。

2、设置属性

选中图像列表控件 ImageList1,在属性窗口里,选中属性Images,单击三个小点按钮,出现图像集合编辑器窗口,单击[添加按钮],一一把准备好的图标文件进行添加,注意先后次序,如果不符合要求可以通过上下移动按钮重新改变次序。完成后单击[确定]。

运行图如下:

完整代码如下:

Imports System.IO
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '添加系统所有磁盘目录符号
        For Each MyDrive As String In Environment.GetLogicalDrives()
            ComboBox1.Items.Add(MyDrive)
        Next
        '显示第一个磁盘符号
        ComboBox1.Text = ComboBox1.Items(0)
    End Sub

    '递归过程添加目录树
    Public Sub AddDirectory(ByVal strFatherPath As String, ByVal strPath As String, ByVal nodeFather As TreeNode)
        Dim i As Integer
        Dim Mynode As New TreeNode
        '先添加本目录
        Mynode.Text = Strings.Replace(strPath, strFatherPath & "\", "", , 1)
        '为节点指定未被选中时显示的图标
        Mynode.ImageIndex = 1
        '为节点指定被选中时显示的图标
        Mynode.SelectedImageIndex = 2
        nodeFather.Nodes.Add(Mynode)
        Application.DoEvents()
        Try
            Dim str() As String = Directory.GetDirectories(strPath)
            '递归遍历该目录的子文件夹
            For i = 0 To str.GetUpperBound(0)
                AddDirectory(strPath, str(i), Mynode)
            Next
        Catch ex As Exception
            Debug.WriteLine(ex.Message)
        End Try
        Mynode = Nothing
    End Sub

    '根据给出的盘符添加目录树
    Private Sub AddRootDirectory(ByVal DiscSymbol As String)
        Dim Nynode As New TreeNode
        '先把磁盘盘符添加到树中
        TreeView1.Nodes.Clear()
        Nynode.ImageIndex = 0
        Nynode.Text = DiscSymbol
        Nynode.SelectedImageIndex = -1
        TreeView1.Nodes.Add(Nynode)
        Dim i As Integer
        '获取磁盘根目录下的文件夹
        Dim str() As String = Directory.GetDirectories(DiscSymbol & "\")

        For i = 0 To str.GetUpperBound(0)
            '调用递归过程遍历该文件夹里的所有子文件夹,并添加到树型控件
            AddDirectory(DiscSymbol, str(i), Nynode)
        Next
        Nynode = Nothing
    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        '根据磁盘符号的变更,显示根目录里的文件
        ListBox1.Items.Clear()
        For Each MyFile As String In System.IO.Directory.GetFiles(ComboBox1.Text)
            ListBox1.Items.Add(MyFile)
        Next
        '根据磁盘符号的变更,重新显示目录树
        Dim DiscSymbol As String
        DiscSymbol = Microsoft.VisualBasic.Left(ComboBox1.Text, Len(ComboBox1.Text) - 1)
        Call AddRootDirectory(DiscSymbol)
    End Sub

    '递归过程根据子目录寻找上级目录名--从而构成完整的目录路径
    Private Sub AllPath(ByVal ThisNode As TreeNode, ByRef MyPathName As String)
        If ThisNode.Level > 1 Then
            '该节点层数大于1,其父节点不是磁盘根目录
            MyPathName = ThisNode.Parent.Text & "\" & MyPathName
            Dim MyNode As TreeNode = ThisNode.Parent
            Call AllPath(MyNode, MyPathName)
        Else
            '该节点层数等于1,其父节点就是磁盘根目录
            MyPathName = ComboBox1.Text & MyPathName
        End If
    End Sub

    Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
        '为了搜索选中的节点对应目录的文件,需要组成全路径
        Dim MyAllPathName As String = TreeView1.SelectedNode.Text
        Dim MyNode As TreeNode = TreeView1.SelectedNode
        If TreeView1.SelectedNode.Level = 0 Then
            '如果选中的是根节点
            MyAllPathName = ComboBox1.Text
        Else
            '如果选中的是非根节点,调用递归过程组成全路径
            Call AllPath(MyNode, MyAllPathName)
            MyAllPathName = MyAllPathName & "\"
        End If
        '根据路径,搜索文件名并显示
        ListBox1.Items.Clear()
        For Each MyFile As String In System.IO.Directory.GetFiles(MyAllPathName)
            ListBox1.Items.Add(MyFile)
        Next
    End Sub
End Class


说明 查找与指定文件关联在一起的程序的文件名 返回值 Long,非零表示成功,零表示失败。会设置GetLastError 参数表 参数 类型及说明 hwnd Long,指定一个窗口的句柄,有时候,windows程序有必要在创建自己的主窗口前显示一个消息框 lpOperation String,指定字串“open”来打开lpFlie文档,或指定“Print”来打印它 lpFile String,想用关联程序打印或打开一个程序名或文件名 lpParameters String,如lpszFlie是可执行文件,则这个字串包含传递给执行程序的参数 lpDirectory String,想使用的完整路径 nShowCmd Long,定义了如何显示启动程序的常数值。参考ShowWindow函数的nCmdShow参数


城中区18691789760: vb.net 磁盘文件列表,界面如图,在.net下如何实现? -
厉丹西力: 预先准备三个图标文件,用于树型控件中显示磁盘符号和文件夹的图像之用.1、窗体上添加控件如下:组合框控件 ComboBox1,树型控件 TreeView1,列表框控件 ListBox1,图像列表控件 ImageList1.选中TreeView1,设置其ImageList属性...

城中区18691789760: vb.net界面设计 -
厉丹西力: 楼上说的是c#的 dim o as new openfiledialog dim pathname as string '这用来保存获得的文件名 if o.showdialog=dislogresult.ok then '显示打开文件对话框 pathname=o.filename end if

城中区18691789760: vb中 地址栏+文件/文件夹显示窗口的编程方法 -
厉丹西力: DriveListBox 控件 在运行时,由于有 DriveListBox 控件,所以可选择一个有效的磁盘驱动器.该控件用来显示用户系统中所有有效磁盘驱动器的列表.可以创建对话框,通过它从任一可用驱动器的磁盘文件列表中打开文件.语法 DriveListBox 说明 设置 List、ListCount、和 ListIndex 属性,就可以访问列表中的项目.如果需要显示 DirListBox 和 FileListBox 控件,那么可以编写代码,使它们与 DriveListBox 控件同步,并使它们之间彼此同步.

城中区18691789760: 如何用VB.NET增加右键菜单并读取文件(文件夹)地址? -
厉丹西力: 这个简单,我以前用VB6就写过一个类似的程序. 不过这个程序需要提供命令行参数哟. 就算用VB.NET编写,也必须要有接收这个命令行参数的,不然无法实现显示文件或文件夹路径. 下面是注册表文件的内容,你也可以用程序来写入注册表. *表示所有文件,你可以随便修改. 最后面的%1,表示当前文件或文件夹 REGEDIT4 [HKEY_CLASSES_ROOT\*\shell\显示名称] [HKEY_CLASSES_ROOT\*\shell\显示名称\command] @="D:\\绿色软件\\编程\\VB\\显示名称\\显示名称.exe %1"

城中区18691789760: vb.net 文件夹操作 -
厉丹西力: vb.net使用控件FolderBrowserDialog1,在程序中: '设置对话框中在树视图控件上显示的说明文本 Me.FolderBrowserDialog1.Description = "请选择输出报表所在路径:" '设置从其开始浏览的根文件夹 Me.FolderBrowserDialog1.SelectedPath ...

城中区18691789760: vb.net如何实现像windows优化大师的界面? -
厉丹西力: VB.NET 不能直接实现这样的功能.需要你用代码实现.

城中区18691789760: vb.net 模式窗口 -
厉丹西力: 在工具箱里面拉,什么openfiledialog,savefiledialog,fontdialog,printdialog啦,都有.

城中区18691789760: VB.NET如何打开指定文件位置
厉丹西力: 你在DOS下输入这样的命令行:explorer.exe /select, "D:\Program Files\AutoCad 2007\acad.exe",你就知道该怎么在VB中实现了.

城中区18691789760: VB中的treeview和listview控件如何使用? -
厉丹西力: 使用 TreeView 控件TreeViewTreeView 控件可以用来显示具有层次结构的数据,例如组织树、索引项、磁盘中的文件和目录等.图2.40 典型的 TreeView可能的用途创建用户可以操作...

城中区18691789760: vb.net如何调用打开外部excel文档 -
厉丹西力: 第一步,新建项目.1 打开vb.net,也就是打开Microsoft visual studio 2010,第一次使用的时候设置为basic语言就行.新建项目--打开excel. 2 新建成功.END 第二步,添加引用. 1 “项目”--“添加引用”. 2 添加Microsoft Excel 14.0 ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网