路径生成工具

  在工作当中看到有时会用到路径生成工具生成路径文件。在业余时间我试着做了一个,以下是核心代码。

 

Imports System.Text
Imports System.IO
Public Class GetXLSFile
    Public psTestStr As New StringBuilder()

    Public ReadOnly STR_MIDDLE As String = "  ├─"
    Public ReadOnly STR_OVER As String = "  └─"
    Public ReadOnly STR_JOIN As String = "  │"
    Public ReadOnly STR_SPLIT As String = ","
    Public ReadOnly STR_SPACE As String = "    "

    Private Sub WritePathName(ByVal asSubDir As String, ByVal asSpaceFile As String)
        Dim lsSpaceFile As String = String.Empty
        Dim liDirCnt As Integer = 0
        Dim lsSubPathNames() As String = Nothing
        For Each lsSubDir As String In Directory.GetDirectories(asSubDir)
            psTestStr.Append(asSpaceFile & STR_JOIN & STR_SPLIT & asSpaceFile)
            If liDirCnt >= Directory.GetDirectories(asSubDir).GetLength(0) - 1 AndAlso _
               Directory.GetFiles(asSubDir).GetLength(0) <= 0 Then
                psTestStr.Append(STR_OVER)
                lsSpaceFile = asSpaceFile & STR_SPACE
            Else
                psTestStr.Append(STR_MIDDLE)
                lsSpaceFile = asSpaceFile & STR_JOIN
            End If
            lsSubPathNames = lsSubDir.Split("/")
            psTestStr.Append(lsSubPathNames(lsSubPathNames.Length - 1)).Append(STR_SPLIT)
            WritePathName(lsSubDir, lsSpaceFile)
            liDirCnt += 1
        Next
        WriteFileName(asSubDir, asSpaceFile)
    End Sub

    Private Sub WriteFileName(ByVal asSubDir As String, ByVal asSpace As String)
        Dim liCnt As Integer = 0
        For Each lsFilePath As String In Directory.GetFiles(asSubDir)
            psTestStr.Append(asSpace)
            If liCnt = 0 Then psTestStr.Append(STR_JOIN & STR_SPLIT & asSpace)
            If liCnt >= Directory.GetFiles(asSubDir).GetLength(0) - 1 Then
                psTestStr.Append(STR_OVER)
            Else
                psTestStr.Append(STR_MIDDLE)
            End If
            Dim lsFilePathNames() As String = lsFilePath.Split("/")
            psTestStr.Append(lsFilePathNames(lsFilePathNames.Length - 1)).Append(STR_SPLIT)
            liCnt += 1
        Next
    End Sub
    Public Sub WriteToExcel(ByVal asPath As String, ByVal asFileName As String)

        If File.Exists(asFileName) Then File.Delete(asFileName)
        psTestStr.Append(asPath & STR_SPLIT)
        WritePathName(asPath, String.Empty)
        Dim loFile As New FileStream(asFileName, FileMode.CreateNew, FileAccess.Write, FileShare.None)
        Dim loWriter As New StreamWriter(loFile)
        Try
            Dim lsTemp() As String = psTestStr.ToString().Split(STR_SPLIT)
            For Each lsStr As String In lsTemp
                loWriter.WriteLine(lsStr.ToCharArray())
            Next
        Finally
            loWriter.Close()
            loFile.Close()
        End Try
    End Sub
End Class

 

 

生成实例结果如下:

 

D:/Document/Visual Studio 2005
  │
  ├─Templates
  │  │
  │  ├─ProjectTemplates
  │  │  │
  │  │  ├─Visual C#
  │  │  │
  │  │  ├─Visual Basic
  │  │  │
  │  │  └─Visual Web Developer
  │  │
  │  └─ItemTemplates
  │      │
  │      ├─Visual C#
  │      │
  │      ├─Visual Basic
  │      │
  │      └─Visual Web Developer
  │
  ├─Projects
  │  │
  │  └─VSMacros80
  │      │
  │      ├─MyMacros
  │      │
  │      └─Samples
  │          │
  │          └─Samples.vsmacros
  │
  ├─Settings
  │  │
  │  └─CurrentSettings.vssettings
  │
  ├─Code Snippets
  │  │
  │  ├─Visual Basic
  │  │  │
  │  │  └─My Code Snippets
  │  │
  │  ├─Visual C#
  │  │  │
  │  │  └─My Code Snippets
  │  │
  │  ├─Visual J#
  │  │  │
  │  │  └─My Code Snippets
  │  │
  │  └─XML
  │      │
  │      └─My Xml Snippets
  │
  ├─Visualizers
  │  │
  │  ├─autoexp.cs
  │  ├─autoexp.dll
  │  ├─autoexpce.cs
  │  ├─autoexpce.dll
  │  └─attribcache80.bin
  │
  └─Backup Files
      │
      └─testBitVector32

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值