У меня есть макрос Excel VBA, который создает дерево папок на основе файла excel.Создание дерева папок с абсолютными каталогами> 256 символов?
Моя текущая проблема в том, что я, кажется, получаю сообщение об ошибке каждый раз, когда абсолютный каталог становится очень длинным.
Программа выдаст ошибку времени выполнения 76 (путь не найден). У меня такое чувство, что это связано с тем, что сценарий ссылается на абсолютный путь, который превышает 256 символов.
Есть ли какая-нибудь работа для этого? Или мой единственный вариант сократить имена папок и, следовательно, абсолютную строку пути?
EDIT
код я использую следующее:
Dim asheet As Range, r As Range, c As Range
Dim fPath As String, tmp As String
Set asheet = ActiveSheet.UsedRange
For Each r In asheet.Rows
fPath = DEST_FOLDER
For Each c In r.Cells
tmp = Trim(c.Value)
If Len(tmp) = 0 Then
Exit For
Else
tmp = Clean(tmp)
fPath = fPath & tmp & "\"
If Len(Dir(fPath, vbDirectory)) = 0 Then MkDir fPath
End If
Next c
Next r
Clean() является самостоятельной определенной функцией, которая будет просто удалить специальные символы из строки, т.е. !, #, _, @, $, &, *,^и%.
Есть ли другой способ, который я мог бы использовать для создания этих папок, которые, возможно, будут использовать относительный путь вместо абсолютного?
Я тоже не пользуюсь. Являются ли эти объекты файловой системы? На данный момент я просто использую функцию MkDir(). – toolshed
@Addikt Я думал, вы использовали его после ответа Сиддхарта на ваш предыдущий вопрос. Не уверен насчет mkdir, но я считаю, что он имеет такое же ограничение. – assylias
Да, MkDir() завершится неудачно, если результирующий путь к каталогу будет длиннее 260 символов. – Alain