Aligned extensions (расширения в отдельном столбце)для папок

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Ответить
x-code
Сообщения: 16
Зарегистрирован: Вт мар 20, 2012 09:22

Aligned extensions (расширения в отдельном столбце)для папок

Сообщение x-code »

Для файлов есть опция, как показывать расширения - вместе с именем или в отдельном столбце "Ext". А вот для директорий расширения показываются всегда вместе с именем.
Возможно ли сделать так, чтобы расширения директорий отображались в столбце "Ext", как и для файлов?

Нужно это для реализации идеи сортировки огромного количества директорий по разным критериям, которые хранятся в имени как теги (что-то типа Name.tag1.tag2.tag3.tag4), поэтому в идеале было бы вообще хорошо чтобы столбцов, подобных "Ext" было сколько угодно, и чтобы можно было настраивать разбиение имени файла на части для загрузки частей в эти столбцы, но подозреваю что такого точно нет, если только не писать свой плагин.

Кстати для симлинков на директории та же проблема - расширение всегда отображается как часть имени.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

x-code
Нет, невозможно. И правильно. Для каталогов никаких реальных расширений быть не может, текст после последней точки всё равно является частью имени.
А насчёт использования подстрок в наборах колонок вы вместо подозрений лучше почитайте справку, где сказано и про то, что сортировка в таких колонках всё равно идёт по полной строке. Я не припоминаю сообщений, что это каким-то спецплагином удалось обойти.
Даже самая богатая фантазия
Не представит себе наши безобразия.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

x-code писал(а):Возможно ли сделать так, чтобы расширения директорий отображались в столбце "Ext", как и для файлов?
Создайте пользовательский набор колонок с колонкой [=tc.ext].

Для нескольких столбцов (колонок) попробуйте Expander2.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

sa
Насчёт пользовательского набора с колонкой [=tc.ext] вы правы. Но это пригодится только для текста после последней точки, а не после любой (см. исходное задание). И, разумеется, только в пользовательских наборах колонок.
А как в данном случае вы применили бы плагин Expander2? (У меня нет опыта работы с ним.)
Даже самая богатая фантазия
Не представит себе наши безобразия.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Avada
В файле Expander2.ini в качестве разделителя указываем точку:

Код: Выделить всё

Divider=.
Для папки Name.tag1.tag2.tag3.tag4 в колонке
Part1 [=expander2.Part1] отображается Name,
Part2 [=expander2.Part2] отображается tag1,
Part3 [=expander2.Part3] отображается tag2 и т.д.

Добавил из ReadmeRUS.txt:
Плагин "разбивает" имя файла на отдельные строки (с помощью заданных разделителей).
Может использоваться для расширенной сортировки.
Если разделитель содержит "\", путь тоже разбивается.
Бесконечное количество разделителей, лимит задается в файле настроек Expander2.ini.
Может использовать несколько разделителей, отделенных друг от друга символом "|" (вертикальная черта без кавычек).
Для использования укажите разделители в секции [Main] файла Expander2.ini.
...
+ может проверять части, начиная с конца имени
Если с конца имени, то так: [=expander2.Part-1] и т.д.
Последний раз редактировалось sa Вт дек 10, 2024 13:42, всего редактировалось 3 раза.
Аватара пользователя
Monarch-LFV
Сообщения: 364
Зарегистрирован: Пн июл 22, 2019 13:20

Сообщение Monarch-LFV »

x-code
Для себя писал скрипт для плагина WinscriptADV:
[cut]

Код: Выделить всё

' Script for WinScriptAdv content plugin
' Разделяет имена папок и файлов по заданному разделителю (или нескольким разделителям)
' Множество разделителей, идущих подряд, считаются за один и удаляются (пример: ___ считается за _);
' Можно использовать юникодные символы как разделители
' Можно задавать порядок считывания подстрок с начала или с конца (Method)
' Лишние пробелы в начале и в конце частей удаляются
' Если файл начинается с разделителя, то он автоматически отбрасывается

'========== Изменяемые параметры =================
Sep = Array(".")
'Sep = Array("-",".",",","_") ' пример применения различных разделителей одновременно

Method = 0 ' 0 - порядок с начала имени, 1 - с конца
'=================================================

On Error Resume Next
Dim arr(9)

Set FSO = CreateObject("Scripting.FileSystemObject") 

if FSO.FolderExists(filename) then
  fn = FSO.GetFolder(filename).name ' Имя папки
else
  fn = FSO.GetBaseName(filename) ' Имя файла
end if

for each i in Sep 
  fn=replace(fn, i, "*")  
next

while Instr(fn, "**") > 0
  fn=replace(fn, "**", "*")
wend

if left(fn, 1)="*" then fn=mid(fn, 2, len(fn))
if Right(fn, 1)="*" then fn=mid(fn, 1, len(fn)-1)

Sep="*"
q=UBound(split(fn, "*"))

Select case Method
Case 0
  for i=0 to q: arr(i)=trim(split(fn, "*")(i)): next
Case 1
  for i=0 to q: arr(i)=trim(split(fn, "*")(q-i)): next
End Select

content  = arr(0) ' Часть 1
content1 = arr(1) ' Часть 2
content2 = arr(2) ' Часть 3
content3 = arr(3) ' Часть 4
content4 = arr(4) ' Часть 5
content5 = arr(5) ' Часть 6
content6 = arr(6) ' Часть 7
content7 = arr(7) ' Часть 8
content8 = arr(8) ' Часть 9
content9 = arr(9) ' Часть 10
[/cut]
Работает также как expander2, но еще умеет обрабатывать с конца имени, когда может быть разное количество разделителей в имени, но нужно, например, 3 последние части.
Также можно задавать одновременно разные разделители (закомментированная строка в скрипте).
В Options.ini соответственно:

Код: Выделить всё

[FilenameSeparate]
; Разделяет имена папок и файлов по заданному разделителю
; Данные настраиваются в файле VBS
Script=FilenameSeparate.vbs
content=Filename_Part 1
content1=Filename_Part 2
content2=Filename_Part 3
content3=Filename_Part 4
content4=Filename_Part 5
content5=Filename_Part 6
content6=Filename_Part 7
content7=Filename_Part 8
content8=Filename_Part 9
content9=Filename_Part 10
extensions=*
FoldersPaths=1
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Re: Aligned extensions (расширения в отдельном столбце)для папок

Сообщение Orion9 »

x-code писал(а):если только не писать свой плагин.
Ну, для подобных задач свой плагин точно писать не надо :) Многое можно решить через WinScriptAdv, что было продемонстрировано Monarch-LFV. Для этого, правда, требуется знание скриптовых языков, но овладеть скриптовым языком гораздо проще, чем стандартным языком программирования, на котором пишут плагины.

Есть еще плагин Autorun. В нем реализован собственный скриптовый язык и недавно появилась возможность дабавлять свои кастомные поля.

Поставленную вами задачу на Autorun можно решить буквально тремя строчками:

Код: Выделить всё

Pragma AutorunPluginFields "C1:::SplitName" "C2:::SplitName" "C3:::SplitName" "C4:::SplitName" "C5:::SplitName" "C6:::SplitName" "C7:::SplitName" "C8:::SplitName" "C9:::SplitName" "C10:::SplitName"

Func SplitName(FileName, FieldIndex, UnitIndex)
   If StrPos(FileGetAttr(FileName), "D") Then Return StrPart(FileName, ".", FieldIndex)    
EndFunc
Но это все требует, конечно, определенных знаний и умений. Поэтому если есть конкретный плагин под нужную задачу, то лучше использовать его, а я написал про Autorun лишь для полноты картины.
Ответить