Ru-Board.club
← Вернуться в раздел «Программы»

» FileChangesWatcher - последние сохраненные файлы

Автор: AlexZaharow
Дата сообщения: 01.06.2016 23:11
FileChangesWatcher




Страница проекта | [more=Поясняющий скриншот] [/more]


Недавно написал одну утилиту для повседневной работы и надеюсь, что она будет достойна вашего внимания. Написана она под впечатлением от простой функции в Google Chrome, когда при сохранении файла в браузере появляется кнопка "Show in folder".
Вопрос - ну почему такой полезной функции нет в каждом приложении?
И вот мне показалось, что я нашёл ответ на этот вопрос. Узнав, что в Windows есть функция, которая умеет мониторить изменения в файловой системе: FileSystemWatcher. Я прикрутил к ней GUI-интерфейс и положил жить в System Tray. Хранит не только самый последний файл, но и список нескольких последних файлов в своем меню, позволяя за одно нажатие перейти к месту, где хранится файл (как это сделано в Google Chrome).

Написана на .Net, весит мало (около 600кб), standalone, так что вы ничего не потеряете, если скопируете ее на другую машину.

Программа очень простая, но несмотря на это, надеюсь, что будет вам полезна и сэкономит вам время и немного нервов, когда вы будете искать "а куда же я только что положил 'этот' файл?" (последние файлы ведь сохраняются не только из браузеров), или при работе в редакторе (блокнот, иллюстрация, word, excel, autocad и др.) "где же лежит то, что я редактирую?"

Теперь после нажатия "save" программа вам подскажет.
Автор: wvxwxvw
Дата сообщения: 02.06.2016 13:28
Отредактировал пока так.
Автор: AlexZaharow
Дата сообщения: 02.06.2016 14:16
Спасибо. А то у меня всё стиралось.

Попробую сейчас добавить это:

http://imagizer.imageshack.us/a/img921/2376/h1EeHH.gif

Добавлено:
Что-то не показывает как картинку. Вы не можете её добавить в топик?
Автор: wvxwxvw
Дата сообщения: 02.06.2016 15:24
AlexZaharow
В личку написал.
Автор: AlexZaharow
Дата сообщения: 02.06.2016 15:35
Да, такая шапка меня устроит. Спасибо.

(
почему-то я не могу ответить через личку, какие-то ограничения:

Неправильный пароль
Неправильное имя пользователя
Незарегистрированный Пользователь
)
Автор: PKEv
Дата сообщения: 02.06.2016 16:10
Не получается подключить папку с кирилицей в имени (сетевую папку пример: \\192.168.3.15\box\Ля-ля\)
Автор: AlexZaharow
Дата сообщения: 02.06.2016 16:18
На счёт кириллицы - да, там ошибка в компоненте, который читает настройки. Пока не знаю как поправить. Выясню - выложу новую версию.
Автор: PKEv
Дата сообщения: 02.06.2016 16:29
хорошо бы если еще контролировалось событие удаление файлов
Автор: wvxwxvw
Дата сообщения: 02.06.2016 18:59
PKEv
Как вы это себе представляете!? Пункт в меню "А здеся был удаленный файл"? Да и в назначение программы не вписывается.
Для мониторинга активности в заданных папках, или вообще по всем дискам, существует масса программ, просто в них нет такого функционала, в виде меню.
Автор: Rustamer
Дата сообщения: 02.06.2016 20:39
AlexZaharow
Идея интересная.
По поводу пропуска русских папок добавь в код вызова fileIniDataParser.WriteFile(iniFilePath, iniData, null) последним параметром UTF8-кодироку. Такие файлы должны быть в юникоде.

Еще одно пожелание - никогда не стоит делать, чтобы поставляемая прога сразу прописывалась в автозагрузку. Иными словами это юзер сам должен включить.
Автор: AlexZaharow
Дата сообщения: 03.06.2016 02:02

Цитата:
добавь в код вызова fileIniDataParser.WriteFile(iniFilePath, iniData, null) последним параметром UTF8-кодировку
- ТОЧНО! Та самая настройка! Огромное спасибо! Как же я так пропустил её - не понимаю! Сейчас всё работает как надо со всеми путями - и русскими и не русскими. Предлагаю скачать новую версию.


Цитата:
Еще одно пожелание - никогда не стоит делать, чтобы поставляемая прога сразу прописывалась в автозагрузку
- Согласен. Сделал, что при первом запуске спрашивает в диалоговом окне "Установить автозапуск при старте Windows? (Если ответить нет, то это можно сделать в контекстном меню позже)". Нормально?
Автор: Rustamer
Дата сообщения: 03.06.2016 06:12
AlexZaharow

Цитата:
Согласен. Сделал, что при первом запуске спрашивает в диалоговом окне "Установить автозапуск при старте Windows? (Если ответить нет, то это можно сделать в контекстном меню позже)". Нормально?

Можно и так впринципе. Хотя обычно оставляют эту опцию только в настройках (в контекстном меню в данном случае), а диалогов при старте не показывают. Но это уже зависит от программы - встречалось и так

Еще что важно имхо - это отключение ballon-tip-ов в трее. Они могут раздражать людей, тем более, что достаточно щелкнуть по значку и сразу будет виден полный список измененных файлов.

Далее у каждой записи в меню стоило бы добавить подпункт для добавления в исключения. А то сейчас изменяется очень много разных файлов (обычно файлы с настройками или лог-файлы), а вручную заносить их в ini-файл тяжело. Такое есть у программ от Руссиновича (Process Monitor, etc). Хотя можно пока жить и без этого. Достаточно занести лишь самые часто используемые папки, а сами диски убрать из ini.

Пожеланий очень много можно придумать, поверь. Например вызов системного контекстного меню для пунктов с файлами (например, чтобы быстро открыть в ассоциированной программе или скопировать в буфер). Для этого можно например заюзать библиотеку GongShell или другие способы.

Вообщем если людям пригодится и, главное, ты сам этим пользуешься каждый день, то стоит развивать программу. Мне лично пригодилось уже
Автор: AlexZaharow
Дата сообщения: 03.06.2016 08:58
[more]
Цитата:
отключение ballon-tip-ов в трее
- в принципе можно сделать, посмотреть, как будет выглядеть. Но тут-то как раз цель программы - показывать сообщение сразу при файловых операциях, чтобы быть уверенным, что операция прошла. У себя в настройках я выставил только те пути, которые мне интересны (куда я сохраняю новые документы от "проектов" от docx до всяких исходников), поэтому у меня баллоны не вылетают как из пулемёта на временных папках windows. Мне бы хотелось в сознании пользователя закрепить такое ощущение: "Я нажимаю [сохранить/как] и краем глаза жду баллон" и его следующая мысль должна быть "При нажатии на баллон я могу его открыть его местоположение одним нажатием".


Цитата:
вручную заносить их в ini-файл тяжело
- да, неудобно. Но тут два момента - первый - ini-файл править всё-таки проще чем xml или json (если популярность будет расти, то, конечно, придётся что-то придумать) и ВТОРОЕ - если в программе выполнить [Settings\Register Windows Explorer Context Menu], то теперь дополнить новые каталоги и расширения в .ini можно будет из контекстного меню в проводнике - нажимаете на каталоге или файле правую кнопку мыши, находите в контекстном меню "FileChangesWatcher" и дальше смотрите подменю. Гляньте на пример: https://gyazo.com/39a05936450f97e9c52667cbd03adb23


Цитата:
быстро открыть в ассоциированной программе или скопировать в буфер)
- я пытался прикрутить wpf grid к контекстному меню, чтобы дать возможность не только перейти к файлу, но и просто скопировать путь, но пока это выглядит ооочень криво. Буду дальше думать.
[/more]
Автор: wvxwxvw
Дата сообщения: 03.06.2016 16:01
В исключениях не учитываются подпапки? Если это так, то надо бы, что бы учитывались.
А ни как нельзя сделать без этих "папка 1, папка 2"? Слишком это напрягает, учитывая сколько путей придется добавлять..

Добавлено:
По щелчку ПКМ открывает папку последнего файла, но программа вообще не должна так реагировать на ПКМ, я же точно жду не открытия папки и право с лево не путаю, захотел бы открыть папку щелкнул бы левой. Происходит это когда балон-тип уже вроде бы скрылся.
Автор: PKEv
Дата сообщения: 03.06.2016 16:23
Нет нигде версии программы
Автор: wvxwxvw
Дата сообщения: 03.06.2016 17:25
AlexZaharow
К ранее написанному: В общем у меня не работают исключения для подпапок такого пути "C:\Users\Name\AppData\Local\johnsadventures.com\Background Switcher". Судя по всему из за точки в пути. А там постоянная движуха.

PKEv
А в свойствах файла тоже нет?
Автор: AlexZaharow
Дата сообщения: 04.06.2016 09:02
wvxwxvw

Цитата:
Судя по всему из за точки в пути
- проверьте, что вы переприменили изменённые настройки (или перезапустите программу). На всякий случай загрузите новую версию (1.0.9), потому что именно в ней я исправил проблемы с кириллицей.
Я проверить путь "F:\Enternet\2016\16.06.03\кириллица.01 02.03\справочники 01.02" с исключением по "F:\Enternet\2016\16.06.03\кириллица.01 02.03" (пробовал и без пробела тоже) - исключение работает и на изменения/создания файлов ни в каталоге исключении, ни в его подкаталогах не реагирует. Для сравнения с исключениями используется функция "StartsWith", а не регулярное выражение, поэтому символы в самом пути без разницы.

Добавлено:
PKEv

Смотрите свойства файла, закладка "подробно". Версия там.
Автор: wvxwxvw
Дата сообщения: 04.06.2016 09:35
AlexZaharow
Да это я вчера local с roaming путал. И судя по всему то одно добавлял, то другое. А движуха идет и там, и там.

А что на счет открытия папки по ПКМ? Очень мешает.
Т.е. баллон всплыл, хочу открыть меню в это время, щелкаю ПКМ, а вместо меню открывает папку последнего изменения.

И по поводу неработающего подменю? Я в личку писал.
Автор: AlexZaharow
Дата сообщения: 04.06.2016 14:57
wvxwxvw

Я пока не могу отправлять личные письма (т.к. тут меньше недели).

Судя по всему у вас стоит какая-то кастомизация рабочего стола. Вот пример у меня:

https://i.gyazo.com/bb3b09c934b13bbfcefc322975049f28.gif



Цитата:
"А здеся был удаленный файл"
- в принципе можно, только отметить его серым цветом, а так я их просто удаляю из списка, чтобы не занимали место для существующих файлов. Мне надо подумать. )


Цитата:
на счет открытия папки по ПКМ
- судя по всему какой-то глюк баллона в windows. У меня 8.1 и такая же фигня. Получается, что событие обработки нажатия мышки на баллоне обтекает не только контур баллона, но и иконку. Очень странно. Причём кнопка мыши событие не меняет - и правая или левая - всё считается кликом. Может как-то удастся проверить, а что за кнопка нажата? Надо поэкспериментировать.
Автор: wvxwxvw
Дата сообщения: 04.06.2016 16:47
AlexZaharow
Те программы-"кастомизации" которые есть и теоретически могут влиять на такое поведение вашего подменю, стоят у меня не первый год и ни когда, ни на какие другие меню так не влияли. Но учитывая наличие ini-файла эта проблема не критичная, возможно со временем найдется решение или диалог сделаете вместо этого подменю. Вообще в ini даже удобнее.

Больше первая проблема интересует. А может реализовать уведомление не баллоном, а подсказкой над часами? Заодно можно прикрутить опции кастомизации этой подсказки - цвет, шрифт, размер. Или не над часами, а над иконкой или в заданном месте экрана.
Автор: AlexZaharow
Дата сообщения: 04.06.2016 23:20
wvxwxvw

Меню в моей программе - это стандартный класс windows ContextMenu. Пока сам не увижу глюк поправить не смогу.


Цитата:
Больше первая проблема интересует. А может реализовать уведомление не баллоном, а подсказкой над часами?
- не, сейчас точно не буду этим заниматься. )
Автор: PKEv
Дата сообщения: 06.06.2016 09:30
Отличная прога
Автор: MaxSh77
Дата сообщения: 06.06.2016 10:39
Есть идея развития программы немного в другом русле. Скорее это будет уже другая программа, но смысл очень похожий.
Мониторинг работы с сетевой папкой (расшареной). Т.е. кто и когда заходил. И самое главное кто изменял файл. (в том числе и удалял). На сегодняшний день ничего подобного для простых папок я не встречал. А проблема как мне кажется актуальная. Очень часто в различных организациях, где нет СЭД, а работа ведется на файловом сервере, с простыми расшаренными папками. Отследить кто последний изменил файл, или кто его удалил, наверно не возможно. Максимум я находил программы онлайн мониторинга, но когда работает 50 человек с сервером, это просто груда мусора, который тяжело мониторить.
Такая программа в основном нужна для расследования "преступления". Типа кто изменил файл или кто его удалил с последующей казнью виновного.
Также нужно видеть у кого по сети открыт файл. Еще лучше чтобы это мог посмотреть не только администратор этого сервера, а простой смертный через приложение клиент.

А по поводу FileChangesWatcher, просто блеск и идея и реализация! За всплывающий балон в трее отдельное спасибо!
Еще только с файлами которые ушли в корзину надо поработать - путь, возможно показывать более понятный простому пользователю. И еще вывод настроек по двойному клику. Ну и русский интерфейс обязательно.
Автор: wvxwxvw
Дата сообщения: 06.06.2016 11:16
Ну да, что бы меню оставалось меню, а настройки отдельно, по двойному клику.

Страницы: 1

Предыдущая тема: Перенос почты с Gmail на Connect


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.