![]() |
проверка полного пути файла на кол-во символов, и обрезка имени в случае превышения
Добрый!
Итак: Код:
$file = "$dir$name.mp4" нужно если длинна полного пути к файлу .mp4 <240 символов, тогда $file = "$dir$name.mp4" ели длинна полного пути >240 - $file = "$dir+обрезанный $name.mp4" Надеюсь хоть на этом форуме помогут) Заранее спасибо. для примера: имеем: D:\.\.\.длинное длинное имя.mp4 на выходе: D:\.\.\.длинное дл.mp4 Как именно и по какой логике это будет - неважно. главное результат. |
Цитата:
|
Iska,
Нужно так: если длинна полного пути <240 - $file = "$dir$name.mp4" ели длинна полного пути >240 - $file = "$dir+обрезанный $name.mp4" |
Цитата:
Код:
$length = 18 |
Цитата:
|
Цитата:
Цитата:
Код:
$length = 18 |
давайте чуть подробнее.
изначально, имя для файла получается из заранее подготовленного txt файла конечный видео-файл будет имеет вид: D:\путь\имя файла\имя файла.mp4. Бывает что полный путь к файлу mp.4 выходит больше 240 символов. И из-за этого у софта который должен дальше обрабатывать конечный mp4 файл - возникают проблемы. Поэтому мне нужно организовать проверку общей длинны пути перед тем как создавать дерево папок и ложить туда файл.mp4. И если длинна больше 240 символов (например 270), отрезать лишние 30 символов, но именно у D:\путь\имя файла\имя файла.mp4 (т.е в имени самого файла.mp4) Если же длинна не превышает - оставляем как есть Т.е вот эта формулировка Код:
если длинна полного пути <240 - $file = "$dir$name.mp4" |
Цитата:
Измерять, Вы, предполагаете общую длину: D:\путь\имя файла\имя файла.mp4 Обрезать, желаете имя файла НО Вам описывают ситуацию, когда путь превышает те самые 240, т.е.: D:\путь\имя файла\имя файла.mp4 - здесь длина пути, допустим 270 символов. Действия? |
Цитата:
Длинна должна считаться только полностью. т.е. D:\путь\имя файла\имя файла.mp4 Код:
$date = Get-Date -Format "ddMMyy" D:\путь\имя файла\имя файла.mp4 в моем случае не будет превышать 240 символов. |
Цитата:
Код:
C:\240\знаков\1.mp4 |
К сожалению, сейчас нарушена связь поколений :(. Для укорачивания пути также можно пользовать дедовские способы с созданием связи каталогов (junction) или отцовские — с созданием символической ссылки на каталог (symlink) ;).
|
Цитата:
т.к папку и имя у меня формирует $name, т.е $путь_константа\$name\$name.mp4 для себя решил обрезать именно его, по формуле (240 минус символы $путь)/2. Т.е будет резать и папку и файл одинаково, в случае превышения общего пути в 240 символов. |
1.
Цитата:
Код:
$name1 = $video_name1 -replace ':|\.', ' -' -replace '&', ' and ' -replace '"|/|\\|‘|<|>|\||\?|\*|¶|§|!|,' 2. Цитата:
Код:
$date = Get-Date -Format "ddMMyy" |
Код:
$files = (Get-Content list.txt) |
Остановился для себя на таком варианте:
Код:
$date = Get-Date -Format "ddMMyy" Плюс такой вариант более универсален, на случай если D:\$путь\$name1\$name1.mp4 будет уже больше 245 символов. Спасибо за помощь. |
9119, вот этого:
Цитата:
Цитата:
|
Цитата:
Правда, при превышении длины, там не совсем корректно происходит корректировка имени, с добавлением к контролируемому имени расширения и впоследствии уже именно это новое имя с расширением попадает в наименование каталога, а также в новое имя файла плюс второе расширение... но это уже другой вопрос :) |
Время: 07:10. |
Время: 07:10.
© OSzone.net 2001-