вторник, 5 апреля 2011 г.

Создание папки любой вложенности


Задача: создать папку любой вложенности используя vba.

Способ решения:


Sub СоздатьПапку(ПутьКПапке As String)
' создает папку любой вложенности
Dim FSO As Object
Dim ПройденныйПуть As String ' уже существующий путь
Dim ШагВперед As String ' добавляемый путь
Set FSO = CreateObject("Scripting.FileSystemObject")
ПройденныйПуть = ""
' добавляю в конец строки символ “\”, если его там не было
If Right(ПутьКПапке, 1) <> "\" Then ПутьКПапке = ПутьКПапке & "\"
' если папка существует, то завершаю процедуру
If FSO.FolderExists(ПутьКПапке) Then
Exit Sub
Else
' иначе пошагово проверяю существование части пути и добавляю несуществующую часть пути
Do Until InStr(ПутьКПапке, "\") = InStrRev(ПутьКПапке, "\")
ПройденныйПуть = ПройденныйПуть & Left(ПутьКПапке, InStr(ПутьКПапке, "\"))
ПутьКПапке = Right(ПутьКПапке, Len(ПутьКПапке) - InStr(ПутьКПапке, "\"))
ШагВперед = Left(ПутьКПапке, InStr(ПутьКПапке, "\") - 1)
If Not (FSO.FolderExists(ПройденныйПуть & ШагВперед)) Then
FSO.CreateFolder (ПройденныйПуть & ШагВперед)
End If
Loop
End If
End Sub

Примечания:
  • терминология, используемая здесь далека от идеала
  • процедура позволяет создать, например, папку “c:\БлаБлаБла\СоздаваемаяПапка\Вложеная папка\Конечная папка” при отсутствии папки  “c:\БлаБлаБла”

Комментариев нет:

Отправить комментарий