View previous topic :: View next topic |
Author |
Message |
KoA
Joined: 10 Jun 2007 Posts: 4
|
(Separately) Posted: Sun Jun 10, 2007 23:40 Post subject: Как отобразить наличие или отстутствие опред. файла в папке? |
|
|
Всем привет!
Прошу помощи специалистов.
Задача состоит в следующем. Есть большой архив файлов разложенный по папкам. Таких папок сотни. В папках других подкаталогов нет. В каждой такой папке всего лишь несколько файлов. Нужно, при заходе в директорию, где лежит эта сотня папок, каким-либо образом "отлавливать" те папки, в которых есть опред. файл (критерий отбора - расширение файла *.sfv).
Попытка решить эту задачу голыми руками через custom column не увенчалась успехом.
Другими словами, нужно каким-либо образом при листинге директории содержащей большое количество папок "отлавливать" (показывать, подсвечивать другим цветом или еще как) папки, в которых среди всех файлов нет ни одного файла с расширением .sfv. Как "подсвечивать" папки - я знаю. Проблема в том, что не пойму как "отловить" такие папки.
Подскажите как можно решить такую задачу. К сожалению не программист, иначе решил бы сам с помощью скриптов. Мб есть решение штатными средствами TC? |
|
Back to top |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6151 Location: Москва
|
(Separately) Posted: Sun Jun 10, 2007 23:55 Post subject: |
|
|
Штатных средств точно нет. Здесь мог бы помочь специально для этой цели написанный WDX-плагин... Думаю, тут смог бы помочь Script Content Plugin, но во-первых, точно сказать не могу, а во-вторых, всё равно потребуется умение писать скрипты. Возможно, кто-нибудь из местных скрипто-гуру отзовётся. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
|
KoA
Joined: 10 Jun 2007 Posts: 4
|
(Separately) Posted: Mon Jun 11, 2007 01:03 Post subject: |
|
|
CaptainFlint, спасибо за ответ.
Тогда все надежды на местных гуру!
Думаю найдется тот, кому будет под силу набросать небольшой скрипт, который ищет во всех директориях (без заглядывания в поддиректории) текущей папки одного из окон ТС файл по заданной маске (например *.com) и выдает в результате true или false. Что бы в дальнейшем накрутить на это дело стандартную фичу типа Define colours by file type (что бы подсвечивать цветом директории в которых этот файл не будет найден) = )) |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2584 Location: Большая деревня Москва
|
(Separately) Posted: Wed Jun 13, 2007 21:27 Post subject: |
|
|
Интересная идея.
Моя жизнь сейчас делится на два периода - настоящее (до 5 июля) и будущее (после). В настоящем - *опа в мыле и суета, в будущем - отпуск, слабая надежда на расслабление и занятие более увлекательными делами типа скриптинга.
Только предупреждаю - работать такой скрипт будет нешустро. О каком числе файлов идет речь? Сотни, тысячи? _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Fri Jun 15, 2007 12:59 Post subject: |
|
|
Используем 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 |
|
|
KoA
Joined: 10 Jun 2007 Posts: 4
|
(Separately) Posted: Tue Jun 19, 2007 14:26 Post subject: |
|
|
Вахмурка Речь идет о количестве от 3 до 20-30 файлов в каждом подкаталоге. Самих же подкаталогов - сотни. В каждом из них может быть или не быть только один файл с таким расширением. Не, ну конечно мб и больше, только это редкость. Достаточно знать наличие хотя бы одного.
Batya Спасибо!
Судя по коду, алгоритм вполне адекватный. Попробую на днях. Потом расскажу как чего. |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2584 Location: Большая деревня Москва
|
(Separately) Posted: Fri Jun 22, 2007 13:03 Post subject: |
|
|
Ехал тут в метро, в давке, когда даже читать нельзя, и покумекал над темой. Вот что получилось:
Допустим, нам надо раскрасить директории, содержащий файл 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 |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Fri Jun 22, 2007 16:15 Post subject: |
|
|
Вахмурка wrote: | Теперь эта директория, если в ней есть заданный файл, будет иметь один цвет, нет файла – другой цвет.
Остались вопросы:
- Как быть с остальными директориями? |
Где-то здесь ты забыл написать, что в примечание этой папки нужно внести ”myfile.ext”.
Т.е. ты предлагаешь перед работой с требуемыми колонками каждый раз запускать скрипт, обновляющий примечания папок? |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2584 Location: Большая деревня Москва
|
(Separately) Posted: Fri Jun 22, 2007 16:51 Post subject: |
|
|
Да, Батя, ты прав - я не написал самого главного! Спасибо.
Quote: | Т.е. ты предлагаешь перед работой с требуемыми колонками каждый раз запускать скрипт, обновляющий примечания папок? | Не понял, а причем здесь колонки? KoA просто написал, что безуспешно пытался решить свою проблему с помощью колонок.
Решение несовершенно, признаю. Но ведь, с другой стороны, в постановке задачи было сказано, что искомая маска - *.sfv. Это упрощает дело. Осталось лишь написать скрипт, который периодически (скажем, при запуске винды) будет пересоставлять список, помещая его в descript.ion. Сделать это нетрудно и по плечу новичку. Преимущество в том, что можно прикрутить инишник с любым числом строк типа, а скрипт будет просматривать содержимое директорий и обновлять инишник уже самого Тотала, тогда после его перезагрузки цвета вступят в силу.
Говорю же - вкусная задачка. После 5 июля буду решать.
Главное - мое решение удобно использовать, если содержимое директорий меняется редко, а самих директорий много. Я попробовал. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Fri Jun 22, 2007 18:35 Post subject: |
|
|
Еще одна загвоздка в твой адрес - descript.ion содержит однострочные комментарии. В этом случае, если необходимо искать достаточно много вариантов масок, такая строка будет жутко выглядеть. К тому же маски в такой строке необходимо отделять друг от друга какими-нибудь хитрыми символами, которые не могут входить в имена и маски файлов. Это необходимо учесть при добавлении\удалении маски из строки.
А как быть, если я хочу иметь для какой-нибудь папки нормальный комментарий?
Вообщем, я не понял чем плох мой вариант?
Единственный минус здесь - для каждого варианта поиска нужно создавать свою копию плагина Script Content. У Lev-а, к сожалению, все никак руки не доходят в плагин докрутить возврат нескольких значений. Хотя в ToDo он это принял больше 2-х лет назад _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2584 Location: Большая деревня Москва
|
(Separately) Posted: Fri Jun 22, 2007 19:13 Post subject: |
|
|
Боже упаси, я разве сказал, что твой вариант плох!? Да отсохни мой язык! Я просто не умею пользоваться Script Content Plugin, вот и все... А поставленную задачу я бы решал (и решил, кстати) через комментарии. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Lev
Joined: 02 Mar 2005 Posts: 392
|
(Separately) Posted: Fri Jun 22, 2007 21:52 Post subject: |
|
|
[off] Quote: | У Lev-а, к сожалению, все никак руки не доходят в плагин докрутить возврат нескольких значений. | Просто мое сегодняшнее представление о работе контентных плагинов говорит мне, что данных результатов проще и быстрее добиться иными способами, чем моим плагином. Наверно я попытаюсь в ближайшее время в рамках завязавшихся дискуссий по ИФМ (идеальному файл-менеджеру) и концепциям развития апи различных плагинов обрисовать мои взгляды на это.[/off] |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2584 Location: Большая деревня Москва
|
|
Back to top |
|
|
DrShark
Joined: 21 Oct 2006 Posts: 911 Location: Kyiv, Ukraine
|
|
Back to top |
|
|
ask
Joined: 25 Mar 2009 Posts: 34
|
(Separately) Posted: Wed Mar 25, 2009 15:02 Post subject: |
|
|
Народ, а можно дополнить плагин что бы он искал либо выделял как то папки с определенным количеством файлов (мне надо где один файл) пусть даже без расширения. если определенного расширения - еще лучше. ну и возожность менять количество файлов - может еще окму пригодится. может кто знает уже суествующие штуки, показывающие количество файлов в папке |
|
Back to top |
|
|
|
|
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
|