在程序中要做一个复制文件夹的功能,用递归写起来很方便。后来要某位仁兄(自己知道就行了 - -)实现一个类似的,貌似不是那么顺利,这里把复制文件夹的递归代码丢出来:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 |
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 |
递归的程序实在是很简洁很漂亮吧?后来又写了一个在文件夹中搜索文件的方法,也是递归的,那么在这里就一并丢出来:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 |
''' ''' Search the specified file in the folder and its sub folders and return its full path name. Empty string if not found. ''' ''' The file to search (no folder). ''' 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是我自己写的一个把路径去掉只剩下文件名和扩展名的方法。
全国职称计算机考试速成过关系列套装:W .. 定价:¥133 优惠价:¥133.0 更多书籍 | |
全国职称计算机考试速成过关系列套装:W .. 定价:¥124 优惠价:¥124.0 更多书籍 |