2016-07-10 4 views
0

В настоящее время я пишу скрипт, который переименовывает имена файлов, используя полный путь к файлу в качестве префикса для имени файла. Это хорошо работает с GetAbsolutePathName от FileSystemObject. Я удалил приглашение с помощью функции Right() и Replace(), чтобы заменить обратную косую черту -.Переименовать имя файла с усеченными именами папок

Пока все работает хорошо. Однако, чтобы избежать слишком длинных имен файлов из-за длинных путей и многих подпапок, я wold хотел усечь каждое имя папки в строке имени файла после 4 символов. Мне просто интересно, какой будет самый элегантный способ.

Идентификация позиции всех -, сохраняющих их в массиве, и создание цикла, который вычисляет положение, где усечение кажется немного сложным и, вероятно, будет медленным, я думаю. Кто-нибудь знает, есть более элегантная идея?

+3

Добро пожаловать в Stackoverflow! Не могли бы вы рассказать о своем задаче, например, о коде или о чем-то, чтобы люди могли быстро решить вашу проблему и помочь вам? Благодаря! – JRSofty

+0

Я считаю вопрос достаточно ясным, даже без кода. ОП описал, что он пытается достичь, и то, как он считает, что происходит, а затем спросил, есть ли лучший способ, чем то, о чем он думает. –

+0

Большое спасибо за комментарий. Как сказал Ансгар, мне было интересно узнать о некоторых других идеях, но в следующий раз попытайтесь подробнее рассказать об этом. – Herbie245

ответ

0

Самый простой способ сделать то, что вы хотите, чтобы Split оригинальный путь на обратной косой черты, усечение каждый элемент 4 символов вершины с функцией Left, то Join модифицированный массив обратно в строку.

path = "Users\someuser\Documents" 

arr = Split(path, "\") 
For i=0 To UBound(arr) 
    arr(i) = Left(arr(i), 4) 
Next 
prefix = Join(arr, "-") 'result: "User-some-Docu" 

Осторожно, что FileSystemObject принимает как \ и / в качестве пути сепаратора, таким образом это может ба хорошая идея канонизировать / к \ первое.

+0

Спасибо, Ансгар, это довольно элегантный способ. Я попробую, как это работает с большим количеством файлов. Возможно, я попробую рекурсию над структурой папок. Ура, – Herbie245

Смежные вопросы