Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Как отобразить наличие или отстутствие опред. файла в папке?
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
KoA



Joined: 10 Jun 2007
Posts: 4

Post (Separately) Posted: Sun Jun 10, 2007 23:40    Post subject: Как отобразить наличие или отстутствие опред. файла в папке? Reply with quote

Всем привет!
Прошу помощи специалистов.

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

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

Подскажите как можно решить такую задачу. К сожалению не программист, иначе решил бы сам с помощью скриптов. Мб есть решение штатными средствами TC?
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 5918
Location: Москва

Post (Separately) Posted: Sun Jun 10, 2007 23:55    Post subject: Reply with quote

Штатных средств точно нет. Здесь мог бы помочь специально для этой цели написанный WDX-плагин... Думаю, тут смог бы помочь Script Content Plugin, но во-первых, точно сказать не могу, а во-вторых, всё равно потребуется умение писать скрипты. Возможно, кто-нибудь из местных скрипто-гуру отзовётся. Smile
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
KoA



Joined: 10 Jun 2007
Posts: 4

Post (Separately) Posted: Mon Jun 11, 2007 01:03    Post subject: Reply with quote

CaptainFlint, спасибо за ответ.
Тогда все надежды на местных гуру!
Думаю найдется тот, кому будет под силу набросать небольшой скрипт, который ищет во всех директориях (без заглядывания в поддиректории) текущей папки одного из окон ТС файл по заданной маске (например *.com) и выдает в результате true или false. Что бы в дальнейшем накрутить на это дело стандартную фичу типа Define colours by file type (что бы подсвечивать цветом директории в которых этот файл не будет найден) = ))
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2531
Location: Большая деревня Москва

Post (Separately) Posted: Wed Jun 13, 2007 21:27    Post subject: Reply with quote

Интересная идея.
Моя жизнь сейчас делится на два периода - настоящее (до 5 июля) и будущее (после). В настоящем - *опа в мыле и суета, в будущем - отпуск, слабая надежда на расслабление и занятие более увлекательными делами типа скриптинга.
Только предупреждаю - работать такой скрипт будет нешустро. О каком числе файлов идет речь? Сотни, тысячи?
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2200
Location: Москва, Россия

Post (Separately) Posted: Fri Jun 15, 2007 12:59    Post subject: Reply with quote

Используем 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.
Back to top
View user's profile Send private message
KoA



Joined: 10 Jun 2007
Posts: 4

Post (Separately) Posted: Tue Jun 19, 2007 14:26    Post subject: Reply with quote

Вахмурка Речь идет о количестве от 3 до 20-30 файлов в каждом подкаталоге. Самих же подкаталогов - сотни. В каждом из них может быть или не быть только один файл с таким расширением. Не, ну конечно мб и больше, только это редкость. Достаточно знать наличие хотя бы одного.

Batya Спасибо!
Судя по коду, алгоритм вполне адекватный. Попробую на днях. Потом расскажу как чего.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2531
Location: Большая деревня Москва

Post (Separately) Posted: Fri Jun 22, 2007 13:03    Post subject: Reply with quote

Ехал тут в метро, в давке, когда даже читать нельзя, и покумекал над темой. Вот что получилось:
Допустим, нам надо раскрасить директории, содержащий файл 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, но откуда он их будет брать?
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2200
Location: Москва, Россия

Post (Separately) Posted: Fri Jun 22, 2007 16:15    Post subject: Reply with quote

Вахмурка wrote:
Теперь эта директория, если в ней есть заданный файл, будет иметь один цвет, нет файла – другой цвет.
Остались вопросы:
- Как быть с остальными директориями?

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

Т.е. ты предлагаешь перед работой с требуемыми колонками каждый раз запускать скрипт, обновляющий примечания папок?
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2531
Location: Большая деревня Москва

Post (Separately) Posted: Fri Jun 22, 2007 16:51    Post subject: Reply with quote

Да, Батя, ты прав - я не написал самого главного! Спасибо.
Quote:
Т.е. ты предлагаешь перед работой с требуемыми колонками каждый раз запускать скрипт, обновляющий примечания папок?
Не понял, а причем здесь колонки? KoA просто написал, что безуспешно пытался решить свою проблему с помощью колонок.

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

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

Главное - мое решение удобно использовать, если содержимое директорий меняется редко, а самих директорий много. Я попробовал.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2200
Location: Москва, Россия

Post (Separately) Posted: Fri Jun 22, 2007 18:35    Post subject: Reply with quote

Еще одна загвоздка в твой адрес - descript.ion содержит однострочные комментарии. В этом случае, если необходимо искать достаточно много вариантов масок, такая строка будет жутко выглядеть. К тому же маски в такой строке необходимо отделять друг от друга какими-нибудь хитрыми символами, которые не могут входить в имена и маски файлов. Это необходимо учесть при добавлении\удалении маски из строки.
А как быть, если я хочу иметь для какой-нибудь папки нормальный комментарий?

Вообщем, я не понял чем плох мой вариант?
Единственный минус здесь - для каждого варианта поиска нужно создавать свою копию плагина Script Content. У Lev-а, к сожалению, все никак руки не доходят в плагин докрутить возврат нескольких значений. Хотя в ToDo он это принял больше 2-х лет назад Sad
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2531
Location: Большая деревня Москва

Post (Separately) Posted: Fri Jun 22, 2007 19:13    Post subject: Reply with quote

Боже упаси, я разве сказал, что твой вариант плох!? Да отсохни мой язык! Я просто не умею пользоваться Script Content Plugin, вот и все... А поставленную задачу я бы решал (и решил, кстати) через комментарии.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Fri Jun 22, 2007 21:52    Post subject: Reply with quote

[off]
Quote:
У Lev-а, к сожалению, все никак руки не доходят в плагин докрутить возврат нескольких значений.
Просто мое сегодняшнее представление о работе контентных плагинов говорит мне, что данных результатов проще и быстрее добиться иными способами, чем моим плагином. Наверно я попытаюсь в ближайшее время в рамках завязавшихся дискуссий по ИФМ (идеальному файл-менеджеру) и концепциям развития апи различных плагинов обрисовать мои взгляды на это.[/off]
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2531
Location: Большая деревня Москва

Post (Separately) Posted: Thu Aug 30, 2007 00:54    Post subject: Reply with quote

Ну, вот, вроде получилось:

http://powerpro.wincmd.ru/Scripts/DirColor.htm
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
DrShark



Joined: 21 Oct 2006
Posts: 903
Location: Kyiv, Ukraine

Post (Separately) Posted: Fri Sep 26, 2008 18:49    Post subject: Reply with quote

WDXcontains content plugin
Back to top
View user's profile Send private message
ask



Joined: 25 Mar 2009
Posts: 34

Post (Separately) Posted: Wed Mar 25, 2009 15:02    Post subject: Reply with quote

Народ, а можно дополнить плагин что бы он искал либо выделял как то папки с определенным количеством файлов (мне надо где один файл) пусть даже без расширения. если определенного расширения - еще лучше. ну и возожность менять количество файлов - может еще окму пригодится. может кто знает уже суествующие штуки, показывающие количество файлов в папке
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group