VB实现的递归复制文件和搜索文件的代码分享_vb.net

在程序中要做一个复制文件夹的功能,用递归写起来很方便。后来要某位仁兄(自己知道就行了 - -)实现一个类似的,貌似不是那么顺利,这里把复制文件夹的递归代码丢出来:

Public Shared Sub CopyDirectory(source As String, destination As String)
  If Directory.Exists(destination) = False Then
    Try
      Directory.CreateDirectory(destination)
    Catch ex As Exception
      Logger.LogError(Logger.SourceType.Application, "Copy build process: Cannot create folder: " & destination)
      Return
    End Try
  End If

  For Each paths As String In Directory.GetDirectories(source)
    CopyDirectory(paths, Path.Combine(destination, paths.Substring(paths.LastIndexOfAny({""c, "/"c}) + 1)))
  Next

  For Each files As String In Directory.GetFiles(source)
    Try
      File.Copy(files, Path.Combine(destination, files.Substring(files.LastIndexOfAny({""c, "/"c}) + 1)), True)
      _copiedFiles += 1
    Catch ex As Exception
      Logger.LogError(Logger.SourceType.Application, "Copy build process: Cannot copy file: " & files)
    End Try
  Next

End Sub

递归的程序实在是很简洁很漂亮吧?后来又写了一个在文件夹中搜索文件的方法,也是递归的,那么在这里就一并丢出来:

''' <summary>
''' Search the specified file in the folder and its sub folders and return its full path name. Empty string if not found.
''' </summary>
''' <param name="fileName">The file to search (no folder).</param>
''' <remarks></remarks>
Public Shared Function SearchFile(folder As String, fileName As String) As String
  If Directory.Exists(folder) = False Then Return String.Empty

  fileName = fileName.Trim.ToLower

  If fileName.IndexOfAny({""c, "/"c}) >= 0 Then
    fileName = GetFileName(fileName)
  End If

  Dim list() As String = Directory.GetFiles(folder)

  For i As Integer = 0 To list.GetUpperBound(0)
    If GetFileName(list(i)).Trim.ToLower = fileName Then Return list(i)
  Next

  Dim directories() As String = Directory.GetDirectories(folder)

  For i As Integer = 0 To directories.GetUpperBound(0)
    Dim return_file As String = SearchFile(directories(i), fileName)

    If return_file.Length > 0 Then Return return_file
  Next

  Return String.Empty
End Function

  GetFileName是我自己写的一个把路径去掉只剩下文件名和扩展名的方法。

  这两段代码实在是太简单了,所以我觉得没有什么地方要解释了(其实是准备下班走人了)。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索vb
, 递归复制文件
递归搜索文件
,以便于您获取更多的相关知识。

时间: 2024-09-12 19:21:12

VB实现的递归复制文件和搜索文件的代码分享_vb.net的相关文章

VB实现的16位和32位md5加密代码分享_vb

在各种登陆系统中,用户密码的md5加密是不可少的. 这么说吧,即使你通过各种手段看到了用户的登陆密码,但那一串古古怪怪的东西你也不可能知道它是什么,这就是保护. md5加密运算是不可逆的,就是说你不能通过那一串古古怪怪的东西算出它原始的样子. 下面是完整的md5代码,不要去理解算法了,用到时拿去直接调用. Private Const BITS_TO_A_BYTE = 8 Private Const BYTES_TO_A_WORD = 4 Private Const BITS_TO_A_WORD

PHP递归复制、移动目录的自定义函数分享_php技巧

虽然复制一个目录是文件操作的基本功能.但PHP中也没有给出特定的函数,同样需要自定义一个递归函数实现.要复制一个包含多个子目录的目录,将涉及文件的复制.目录创建等操作.复制一个文件可以通过PHP提供的copy()函数完成,创建目录可以使用mkdir()函数.定义函数时,首先对源目录进行遍历,如果遇到的是普通文件,直接使用copy()函数进行复制.如果遍历时遇到一个目录,则必须建立该目录,然后再对该目录下的文件进行复制操作,如果还有子目录,则使用递归重复操作,最终将整个目录复制完成.自定义的递归函

jQuery实现的类似淘宝网站搜索框样式代码分享_jquery

运行效果图:                                                ----------------------查看效果----------------------- 小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式. 为大家分享的类似淘宝网站搜索框样式代码如下 <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo

递归实现php数组转xml的代码分享_php技巧

PHP中将数组转为xml的需求是常见的,而且实现方法也有很多种,百度找了一下各种实现方法,但是基本是借组一些组件啥的.我就自己写了一个字符串拼组的方法,支持多维数组.仅供参考,不足之处敬请不吝赐教! /** * 将数组转换为xml * @param array $data 要转换的数组 * @param bool $root 是否要根节点 * @return string xml字符串 * @author Dragondean * @url http://www.cnblogs.com/drag

递归实现php数组转xml的代码分享

  本文以实例形式讲述了PHP实现数组递归转义的方法,分享给大家供大家参考之用.具体方法如下: PHP中将数组转为xml的需求是常见的,而且实现方法也有很多种,百度找了一下各种实现方法,但是基本是借组一些组件啥的.我就自己写了一个字符串拼组的方法,支持多维数组.仅供参考,不足之处敬请不吝赐教! ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 /** * 将数组转换为xml * @param array $data 要转换的数组

VB读取线程、句柄及写入内存的API代码实例_vb

本文所述实例为VB读取内存.线程及句柄的一个API,对涉及系统底层操作的VB编程有一定的帮助,需要的读者可以参考使用.这个API可获取到线程ID,写内存,包括进程句柄,ByVal 内存区地址,数据,总长度,已经完成长度,读取进程,包括进程句柄,ByVal 内存区地址,读取来的数据存放处,要读取的长度,已经读取的长度,内存分配(进程柄,地址[好像只要丢个0进去就行],长度,权限1[MEM_COMMIT],权限2[PAGE_READWRITE])返回:分配到的内存起始地址等功能. 具体实现代码如下:

python读文件逐行处理的示例代码分享_python

复制代码 代码如下: import os ## for os.path.isfile() def dealline(line) :    print(line) ## 针对line我可以做很多事情 def getfilename() :    return input('Please input file name(input exit() for exit):').strip() class more : ## MORE功能    linenum = 0    size = 10    def

PHP实现递归复制整个文件夹的类实例_php技巧

本文实例讲述了PHP实现递归复制整个文件夹的类.分享给大家供大家参考.具体如下: <?php /* * 文件夹复制类 */ class CopyFile { public $fromFile; public $toFile; /* * $fromFile 要复制谁 * $toFile 复制到那 */ function copyFile($fromFile,$toFile){ $this->CreateFolder($toFile); $folder1=opendir($fromFile); w

求助啊 如何用process定位并打开VB.EXE所在文件夹中的.exe文件,该文件的位置在不同电脑上是不固定的

问题描述 求助啊如何用process定位并打开VB.EXE所在文件夹中的.exe文件,该文件的位置在不同电脑上是不固定的 解决方案 解决方案二:你可以做个窗口,让用户选择路径,然后把路径保存到文件.这是最简单的办法.复杂一点,你就遍历磁盘,找到VB所在的文件夹,然后写入文件.下次打开,发现文件里有路径,就不再遍历了.解决方案三:谢谢谢谢能不能直接定位该程序位置比如以下语句:DimFilePathAsNewSystem.IO.StreamWriter(AppDomain.CurrentDomain