Я сталкиваюсь с необходимостью отображать пустые (размером 0 байт) файлы в цвете в проводнике Windows. (Я получаю их по sftp и мне нужно знать, пустые ли они, чтобы предотвратить потерю данных — приложение создает пустые файлы, а затем заполняет их; я постоянно передаю пустые файлы и удаляю их с сервера после этого,когда они больше не пустые). Поиск в Интернете, похоже, бесполезен.
Вы можете раскрашивать сжатые и зашифрованные файлы на томе NTFS, поэтому было бы неплохо, если бы существовала возможность раскрашивать и 0-байтовые файлы.
Принимаются решения для Windows File Explorer, других проводников, Powershell.
решение1
К сожалению, похоже, что не существует расширений оболочки для Проводника, позволяющих управлять цветами файлов и папок.
Если вы открыты для использования альтернативных оболочек, то есть несколько вариантов:
XYplorerподдерживает файлы раскраски (рисунок 1), но в настоящее время только по имени. Однако онипринимать запросы на функции, поэтому вы можете попросить их реализовать цветовой фильтр на основе размера. К сожалению, XYplorer не бесплатен.
Q-Dirтакже поддерживает раскраску файлов (рисунок 2), но также поддерживает только фильтрацию по имени (а также для файлов, доступных только для чтения). Он такжепринимает запросы на функции. К тому же Q-Dir бесплатен.
Справочник Опусподдерживает раскрашивание файлов (рисунок 3) в соответствии слюбое свойство файла, но это не бесплатно. Плюс, не ясно, можно ли указать значения триггера для этих свойств файла. (Похоже, можно только раскрашивать столбцы.) Конечно, если нет, то можнозапросить функцию.
☆ Дальний менеджерэто бесплатный консольный файловый менеджер (как командная строка), что означает, что он текстовый. Если это приемлемо, то он имеет именно то, что вам нужно. Вы можете создать цветовой фильтр через F9→Параметры→
Files highlighting and sort groups
для выделения файлов с нулевым размером (рисунок 4).★ Мульти Командиртакже бесплатно. Они тожепринимать запросы на функции, но это не обязательно, так как он уже поддерживает раскрашивание файлов (по состоянию на 3.5) в соответствии с несколькими факторами (рисунок 5). Фактически, Multi Commander уже имеет встроенное правило цветового фильтра для пустых файлов!
Рисунок 1: Редактор цветовых фильтров XYplorer (принимает только шаблоны имен файлов)
фигура 2: Раскраска файлов Q-Dir (только по имени файла и атрибуту «только для чтения»)
Рисунок 3: Directory Opus имеет ограниченную раскраску файлов
Рисунок 4: Far Manager с цветными файлами нулевых байтов
Рисунок 5: Multi Commander с цветными файлами нулевых байтов
решение2
Для пустых папок:
Вы можете запустить этот пакетный файл в текущем каталоге, чтобы пометить пустые папки другим значком (
desktop.ini
они должны находиться в том же каталоге, что и пакетный файл).:: empty_folders.bat @echo off dir /a /b %1 2>nul | findstr "^" >nul || echo %%~fA for /f "eol=: delims=" %%A in ('dir /s /ad /b %1') do ( dir /a /b "%%~fA" 2>nul | findstr "^" >nul || call:copyini %%~fA ) goto :eof :copyini copy %~dp0desktop.ini %1% attrib +s +h +a %1%\desktop.ini
; desktop.ini [.ShellClassInfo] IconResource=C:\WINDOWS\system32\SHELL32.dll,234 [ViewState] Mode= Vid= FolderType=Generic
Для пустых файлов:
Вы можете использовать такой инструмент, какFMS Пустой Файл Удалениядля упрощения удаления пустых файлов.
Примечание.: Оба эти инструмента необходимо периодически запускать вручную для обновления; они не обнаруживают автоматически пустые файлы и папки.
решение3
Я почти уверен, что нет способа отобразить файлы размером 0 байт другим цветом в Проводнике, если только вы не реализуете пользовательский IShellView
.
Но вы можете воспользоваться поиском, чтобы найти файлы размером 0: Enter
size:=0
в поле поиска в проводнике. В представлении будут отображены все файлы с нулевым размером:
Если вы используетеДальний менеджер, вы можете выделить такие файлы:
- Нажмите F9, чтобы отобразить строку меню.
- НажмитеПараметрыи затем нажмитеПодсветка файлов и сортировка групп.
- Пока курсор находится в первой группе (вышеВерхняя группа сортировки), нажмите Ins, чтобы добавить новое правило выделения:
- ВыбиратьМаскафлажок и поставьте
*
вМаскаполе редактирования. - ВыбиратьРазмерфлажок, и
0
в оба>=и<=поля редактирования.
- Нажмите1. Обычное имя файлачтобы изменить цвет отображения, щелкните нужныйПередний планиФон.
- Нажмите3. Выбранное имя файла,5. Имя файла под курсором,7. Имя файла, выбранного под курсоромдля настройки этих цветов.
- НажмитеХОРОШОчтобы сохранить правило выделения.
- ВыбиратьМаскафлажок и поставьте
- Нажмите Escили щелкните за пределамиПодсветка файловдиалоговое окно, чтобы закрыть его.
Файлы с нулевым размером будут выделены.
Правила выделения обрабатываются в порядке их отображения вПодсветка файловдиалоговом окне, чтобы переместить правило вверх или вниз, выберите правило курсором и нажмите Ctrl+ ↑или Ctrl+ ↓соответственно.
решение4
Решение своими руками — написать собственную DLL и внедрить ее в оболочку. После подключения она будет менять цвет файла каждый раз при обновлении оболочки. Либо это, либо драйвер режима ядра.
Если бы кто-то зашёл так далеко, он мог бы также добавить в свою DLL немного магии чтения реестра, которая позволяла бы переключаться между режимами, Folder Options > View > Advanced Settings
как в настоящем расширении оболочки.