帐号: 密码:
// 设为首页 // 收藏本站 // 请您留言 // 网址导航
远方教程-满足你的求知欲!
站内搜索:
HTML ASP PHP CSS DIV Dreamweaver Photoshop Word Excel PPT SEO技巧
您当前位置:网站首页 >> 统计之窗 >> VB专区 >> 阅读文章

VB应用举例04:VB与Windows资源管理器互拷文件

来源:远方教程 作者:VBFans 发布时间:2014-12-11 查看次数:2375 访问[新版]

----通过VB编程来拷贝或移动文件的原理可能大家都十分清楚,可以利用Windows API SHFileOperation来进行操作,也可以利用VB内置的函数来操作。但是利用这些方法编 写的程序只能在程序内部执行文件的操作。这里我要向大家介绍如何通过VB编程将程序 中的文件操作同Windows的资源管理器中的拷贝、剪切操作连接起来。

----在Windows的资源管理器中,选中一个或多个文件,在文件上单击鼠标右键,在弹 出菜单中选复制。再切换到另外的目录,单击鼠标右键,点粘贴。就执行了一次文件的 拷贝操作,那么Windows在拷贝过程中执行了什么操作,是否将整个文件拷贝到剪贴版 上了呢?当然没有。实际上,windows只是将一个文件结构拷贝到了剪贴版,这个结构 如下:

----tDropFile+文件1文件名+vbNullChar文件2文件名+vbNullChar...+文件N文件名+vbNullChar 其中tDropFile是一个DROPFILES结构,这个结构在Windows API中有定义。在粘贴文件 时,利用API函数 DragQueryFile 就可以获得拷贝到剪贴版的文件全路径名,然后就 可以根据获得的文件名执行文件拷贝函数,实现对文件的粘贴操作。

----下面通过具体的程序来介绍:

----1、在工程文件中加入一个Module,然后在Module中加入如下代码:

----2、在Form1中加入一个FileListBox,Name属性设置为File1。加入一个DirListBox,

----Name属性设置为Dir1,在Dir1的Change事件中加入如下代码:

Private Sub Dir1_Change() 
   File1.Path = Dir1.Path 
End Sub 
----  
    加入一个DriveListBox,Name属性设置为Drive1,在Drive1的Change事件中加入如下代码: 
Private Sub Drive1_Change() 
   Dir1.Path = Drive1.Drive 
End Sub 
----  
    加入一个CommandButton,Name属性设置为cmdCopy,在cmdCopy的Click事件中加入如下代码: 
Private Sub cmdCopy_Click() 
   Dim Files() As String 
   Dim Path As String 
   Dim i As Long, n As Long 
    
   Path = Dir1.Path 
   If Right(Path, 1) < > "\" Then 
      Path = Path & "\" 
   End If 
    
   ’根据在List1上的选择建立拷贝文件的列表 
   With File1 
      For i = 0 To .ListCount - 1 
         If .Selected(i) Then 
            ReDim Preserve Files(0 To n) As String 
            Files(n) = Path & .List(i) 
            n = n + 1 
         End If 
      Next i 
   End With 
    
   ’拷贝文件到Clipboard 
   If clipCopyFiles(Files) Then 
      MsgBox "拷贝文件成功.", , "Success" 
   Else 
      MsgBox "无法拷贝文件...", , "Failure" 
   End If 
End Sub 
----  
    加入一个CommandButton,Name属性设置为cmdPaste,在cmdPaste的Click事件中加入如下代码: 
Private Sub cmdPaste_Click() 
   Dim Files() As String 
   Dim nRet As Long 
   Dim i As Long 
   Dim msg As String 
    
   nRet = clipPasteFiles(Files) 
   If nRet Then 
      For i = 0 To nRet - 1 
         msg = msg & Files(i) & vbCrLf 
      Next i 
      MsgBox msg, , "共粘贴" & nRet & "个文件" 
   Else 
      MsgBox "从剪贴版粘贴文件错误", , "Failure" 
   End If 
End Sub

--- 运行文件,在Windows 资源管理器中,选择文件,再在资源管理器菜单中选 编辑 | 复制然后在Form1中点击cmdPaste,从资源管理器中复制的文件就拷贝到Dir1所在的目录中。从 File1中选择文件,按cmdCopy复制,再在资源管理器中选 编辑 | 粘贴 ,选择的文件就被 拷贝到Windows 资源管理器的当前目录下。

感谢VBFans投稿查看TA的其他文章>>
打印 打印 | 关闭 关闭 评论
相关文章
图片新闻
站内搜索  
搜索
猜您喜欢  
最新更新  
阅读排行  
关于我们 | 联系方式 | 大事记 | 免责声明 | | 给我留言
部分广告源自金山联盟2345联盟 QQ咨询 站长之家QQ群:232617873
Copyright 2024 远方教程 © All Rights Reserved.

回顶部