Как отобразить наличие или отстутствие опред. файла в папке?
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Общие вопросы

#1: Как отобразить наличие или отстутствие опред. файла в папке? Author: KoA PostPosted: Sun Jun 10, 2007 23:40
    —
Всем привет!
Прошу помощи специалистов.

Задача состоит в следующем. Есть большой архив файлов разложенный по папкам. Таких папок сотни. В папках других подкаталогов нет. В каждой такой папке всего лишь несколько файлов. Нужно, при заходе в директорию, где лежит эта сотня папок, каким-либо образом "отлавливать" те папки, в которых есть опред. файл (критерий отбора - расширение файла *.sfv).
Попытка решить эту задачу голыми руками через custom column не увенчалась успехом.

Другими словами, нужно каким-либо образом при листинге директории содержащей большое количество папок "отлавливать" (показывать, подсвечивать другим цветом или еще как) папки, в которых среди всех файлов нет ни одного файла с расширением .sfv. Как "подсвечивать" папки - я знаю. Проблема в том, что не пойму как "отловить" такие папки.

Подскажите как можно решить такую задачу. К сожалению не программист, иначе решил бы сам с помощью скриптов. Мб есть решение штатными средствами TC?

#2:  Author: CaptainFlintLocation: Москва PostPosted: Sun Jun 10, 2007 23:55
    —
Штатных средств точно нет. Здесь мог бы помочь специально для этой цели написанный WDX-плагин... Думаю, тут смог бы помочь Script Content Plugin, но во-первых, точно сказать не могу, а во-вторых, всё равно потребуется умение писать скрипты. Возможно, кто-нибудь из местных скрипто-гуру отзовётся. Smile

#3:  Author: KoA PostPosted: Mon Jun 11, 2007 01:03
    —
CaptainFlint, спасибо за ответ.
Тогда все надежды на местных гуру!
Думаю найдется тот, кому будет под силу набросать небольшой скрипт, который ищет во всех директориях (без заглядывания в поддиректории) текущей папки одного из окон ТС файл по заданной маске (например *.com) и выдает в результате true или false. Что бы в дальнейшем накрутить на это дело стандартную фичу типа Define colours by file type (что бы подсвечивать цветом директории в которых этот файл не будет найден) = ))

#4:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Wed Jun 13, 2007 21:27
    —
Интересная идея.
Моя жизнь сейчас делится на два периода - настоящее (до 5 июля) и будущее (после). В настоящем - *опа в мыле и суета, в будущем - отпуск, слабая надежда на расслабление и занятие более увлекательными делами типа скриптинга.
Только предупреждаю - работать такой скрипт будет нешустро. О каком числе файлов идет речь? Сотни, тысячи?

#5:  Author: BatyaLocation: Москва, Россия PostPosted: Fri Jun 15, 2007 12:59
    —
Используем Script Content Plugin. Т.к. плагин может возвращать только одно поле, если ранее этот плагин использовался, копируем папку с плагином и переименовываем в новой папке wdx. Подключаем новый wdx.
Редактируем script.ini:
Code:
[Script]
Section=File presence in folder

[File presence in folder]
Script=FilePresence.vbs
LongName=1
ParseDirs=1

В каталоге плагина должен лежать FilePresence.vbs:
Code:
Dim FSO, Ext
'==============================
Ext = "zip"
'==============================
Set FSO = CreateObject("Scripting.FileSystemObject")
content = 0
If FSO.FolderExists(FileName) Then
  Dim Fold, F
  Set Fold = FSO.GetFolder(Filename)
  For Each F In Fold.Files
    If LCase(FSO.GetExtensionName(F)) = LCase(Ext) Then
      content = 1
      Exit For
    End If
  Next
End If

Здесь надо переменной Ext задать нужное значение. Соответственно, плагин для папки будет возвращать 0, если в ней нет файлов с расширением, заданным перенноой Ext. Если в папке такие файлы есть, возвращается 1. Для файлов всегда возвращается 0.

#6:  Author: KoA PostPosted: Tue Jun 19, 2007 14:26
    —
Вахмурка Речь идет о количестве от 3 до 20-30 файлов в каждом подкаталоге. Самих же подкаталогов - сотни. В каждом из них может быть или не быть только один файл с таким расширением. Не, ну конечно мб и больше, только это редкость. Достаточно знать наличие хотя бы одного.

Batya Спасибо!
Судя по коду, алгоритм вполне адекватный. Попробую на днях. Потом расскажу как чего.

#7:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Fri Jun 22, 2007 13:03
    —
Ехал тут в метро, в давке, когда даже читать нельзя, и покумекал над темой. Вот что получилось:
Допустим, нам надо раскрасить директории, содержащий файл myfile.ext.
1. Жмем Alt+F7, вкладка Plugins, tc, comment, contains, ”myfile.ext”. Можно на вкладке Advanced поставить птицу «Directory».
2. Вкладка Load/Save, Save, вводим имя типа “MyColor”. Закрываем диалог.
3. Configuration, Options, Color, Define colors by file type, “MyColor”, выбираем цвет. Все.

Теперь эта директория, если в ней есть заданный файл, будет иметь один цвет, нет файла – другой цвет.
Остались вопросы:
- Как быть с остальными директориями?
Ответ: Процесс можно автоматизировать. Например, так. Можно составить список (хотя бы так), переименовать его в descript.ion и быстро размножить комментарий.
- Как быть с назначением каждому файлу своего цвета?
Ответ: Только врукопашную. Можно сваять эдакий скриптище, добавляющий цветовые схемы в wincmd.ini, но откуда он их будет брать?

#8:  Author: BatyaLocation: Москва, Россия PostPosted: Fri Jun 22, 2007 16:15
    —
Вахмурка wrote:
Теперь эта директория, если в ней есть заданный файл, будет иметь один цвет, нет файла – другой цвет.
Остались вопросы:
- Как быть с остальными директориями?

Где-то здесь ты забыл написать, что в примечание этой папки нужно внести ”myfile.ext”.

Т.е. ты предлагаешь перед работой с требуемыми колонками каждый раз запускать скрипт, обновляющий примечания папок?

#9:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Fri Jun 22, 2007 16:51
    —
Да, Батя, ты прав - я не написал самого главного! Спасибо.
Quote:
Т.е. ты предлагаешь перед работой с требуемыми колонками каждый раз запускать скрипт, обновляющий примечания папок?
Не понял, а причем здесь колонки? KoA просто написал, что безуспешно пытался решить свою проблему с помощью колонок.

Решение несовершенно, признаю. Но ведь, с другой стороны, в постановке задачи было сказано, что искомая маска - *.sfv. Это упрощает дело. Осталось лишь написать скрипт, который периодически (скажем, при запуске винды) будет пересоставлять список, помещая его в descript.ion. Сделать это нетрудно и по плечу новичку. Преимущество в том, что можно прикрутить инишник с любым числом строк типа
Code:
mask=color
, а скрипт будет просматривать содержимое директорий и обновлять инишник уже самого Тотала, тогда после его перезагрузки цвета вступят в силу.

Говорю же - вкусная задачка. После 5 июля буду решать.

Главное - мое решение удобно использовать, если содержимое директорий меняется редко, а самих директорий много. Я попробовал.

#10:  Author: BatyaLocation: Москва, Россия PostPosted: Fri Jun 22, 2007 18:35
    —
Еще одна загвоздка в твой адрес - descript.ion содержит однострочные комментарии. В этом случае, если необходимо искать достаточно много вариантов масок, такая строка будет жутко выглядеть. К тому же маски в такой строке необходимо отделять друг от друга какими-нибудь хитрыми символами, которые не могут входить в имена и маски файлов. Это необходимо учесть при добавлении\удалении маски из строки.
А как быть, если я хочу иметь для какой-нибудь папки нормальный комментарий?

Вообщем, я не понял чем плох мой вариант?
Единственный минус здесь - для каждого варианта поиска нужно создавать свою копию плагина Script Content. У Lev-а, к сожалению, все никак руки не доходят в плагин докрутить возврат нескольких значений. Хотя в ToDo он это принял больше 2-х лет назад Sad

#11:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Fri Jun 22, 2007 19:13
    —
Боже упаси, я разве сказал, что твой вариант плох!? Да отсохни мой язык! Я просто не умею пользоваться Script Content Plugin, вот и все... А поставленную задачу я бы решал (и решил, кстати) через комментарии.

#12:  Author: Lev PostPosted: Fri Jun 22, 2007 21:52
    —
[off]
Quote:
У Lev-а, к сожалению, все никак руки не доходят в плагин докрутить возврат нескольких значений.
Просто мое сегодняшнее представление о работе контентных плагинов говорит мне, что данных результатов проще и быстрее добиться иными способами, чем моим плагином. Наверно я попытаюсь в ближайшее время в рамках завязавшихся дискуссий по ИФМ (идеальному файл-менеджеру) и концепциям развития апи различных плагинов обрисовать мои взгляды на это.[/off]

#13:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Thu Aug 30, 2007 00:54
    —
Ну, вот, вроде получилось:

http://powerpro.wincmd.ru/Scripts/DirColor.htm

#14:  Author: DrSharkLocation: Kyiv, Ukraine PostPosted: Fri Sep 26, 2008 18:49
    —
WDXcontains content plugin

#15:  Author: ask PostPosted: Wed Mar 25, 2009 15:02
    —
Народ, а можно дополнить плагин что бы он искал либо выделял как то папки с определенным количеством файлов (мне надо где один файл) пусть даже без расширения. если определенного расширения - еще лучше. ну и возожность менять количество файлов - может еще окму пригодится. может кто знает уже суествующие штуки, показывающие количество файлов в папке



Total Commander -> Общие вопросы


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2  Next  :| |:
Page 1 of 2

Powered by phpBB © 2001, 2005 phpBB Group