Skip to content

Commit

Permalink
Merge pull request #116 from NataliaBondarenko/winoshiddenfiles
Browse files Browse the repository at this point in the history
Updated def is_hidden_file_or_dir(WinOS) and docs related to Search by pattern
  • Loading branch information
victordomingos committed Feb 15, 2020
2 parents 7b78cb3 + 337ce31 commit 3a15cc0
Show file tree
Hide file tree
Showing 16 changed files with 252 additions and 39 deletions.
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,15 @@ count-files -t .. [path]
count-files --total .. [path]
```

You can also search for files using Unix shell-style wildcards: `*`, `?`, `[seq]`, `[!seq]`.

```
count-files -fm *.py? [path]
```
```
count-files --filename-match *.py? [path]
```

## Did you find a bug or do you have a suggestion?

Please, open a new issue or a pull request to the [repository](https://github.com/victordomingos/Count-files).
1 change: 1 addition & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Version history:
---
v.1.6 - ?
(Contributed by Natalia Bondarenko)
* Added search for file names(including extension) using Unix shell-style wildcards.
* New arguments for the Total group: show folders and total size.
* Added new text file extensions to the list of currently supported file types for preview.
* Other minor internal changes.
Expand Down
6 changes: 2 additions & 4 deletions count_files/platforms.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,17 +193,15 @@ def is_hidden_file_or_dir return True, even if it has visible final file/folder.
# list with full paths of all parents in filepath except drive
list_for_check = list(Path(filepath).parents)[:-1]
list_for_check.append(Path(filepath))
response = []
for some_path in list_for_check:
try:
attrs = ctypes.windll.kernel32.GetFileAttributesW(str(some_path))
assert attrs != -1
result = bool(attrs & 2)
except (AttributeError, AssertionError):
result = False
response.append(result)
if any(response):
return True
if result:
return True # if hidden, exit the loop, otherwise go to the next path
return False


Expand Down
8 changes: 8 additions & 0 deletions docs/README_PT.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,14 @@ count-files -t .. [caminho]
count-files --total .. [caminho]
```

Procure por ficheiros, usando wildcards: `*`, `?`, `[seq]`, `[!seq]`.

```
count-files -fm *.py? [caminho]
```
```
count-files --filename-match *.py? [caminho]
```

## Encontrou um *bug* ou tem uma sugestão?

Expand Down
19 changes: 11 additions & 8 deletions docs/README_RU.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,15 +52,9 @@ count-files --help
любые скрытые файлы или папки по умолчанию игнорируются.
Для других операционных систем, в которых можно запускать Python,
возможность включения/исключения скрытых файлов на данный момент недоступна. И в результате все файлы будут включены.
Расширения по умолчанию не чувствительны к регистру. Результаты для `ini` и `INI` будут одинаковыми.

Расширения по умолчанию не чувствительны к регистру. Результаты для `ini` и `INI` будут одинаковыми.
Вы можете явно указать path к нужной папке, выбрать нерекурсивный способ подсчета или поиска, найти файлы по расширению с учетом регистра, включить подсчет или поиск в скрытых файлах и папках.
При подсчете всех файлов по расширению (таблица):
можно отсортировать расширения по алфавиту.
При поиске файлов по расширению (аргумент `--file-extension`):
доступно получение дополнительной информации о размере каждого найденного файла и короткий предварительный просмотр для текстовых файлов.
При подсчете общего количества файлов (аргумент `--total`):
вы также можете получить список папок, в которых находятся найденные файлы, количество найденных файлов в каждой папке и общий суммарный размер этих файлов.

Более подробно: [аргументы CLI](https://github.com/victordomingos/Count-files/blob/master/docs/documentation_ru/howtouse.md#аргументы-cli).

Наиболее простой формой использования является ввод команды без всяких аргументов. Результатом будет таблица, показывающая частоту для каждого расширения файла (например: .txt, .py, .html, .css) и общее количество найденных файлов.
Expand Down Expand Up @@ -119,6 +113,15 @@ count-files -t .. [path]
count-files --total .. [path]
```

Вы также можете искать файлы по шаблону, с использованием символов подстановки: `*`, `?`, `[seq]`, `[!seq]`.

```
count-files -fm *.py? [path]
```
```
count-files --filename-match *.py? [path]
```

## Вы нашли ошибку или у Вас есть предложения по улучшению?

Пожалуйста, задайте вопрос в разделе Issues или откройте pull request в [репозитории](https://github.com/victordomingos/Count-files).
21 changes: 12 additions & 9 deletions docs/README_UA.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,15 +50,9 @@ count-files --help
Для повністю підтримуваних операційних систем (Linux, macOS, iOS, Windows)
будь-які приховані файли чи папки ігноруються.
Для інших операційних систем, в яких Python може працювати, опція для включення/виключення прихованих файлів наразі недоступна. Як результат, всі існуючі файли будуть включені.
Розширення за замовчуванням не чутливі до регістру. Результат для `ini` та `INI` буде однаковий.

Ви маєте змогу вказати path до потрібної папки, обрати нерекурсивний підрахунок чи пошук, шукати файли враховуючи регістр розширення, включити підрахунок чи пошук у прихованих файлах та папках.
При підрахунку всіх файлів за розширенням (таблиця):
ви можете відсортувати розширення за алфавітом.
Для пошуку файлів за допомогою розширення (аргумент `--file-extension`):
також доступне отримання додаткової інформації про розмір кожного знайденого файлу та короткий попередній перегляд для текстових файлів.
Підраховуючи загальну кількість файлів (аргумент `--total`):
ви також можете отримати список папок, в яких знаходяться знайдені файли, кількість знайдених файлів у кожній папці та загальний комбінований розмір цих файлів.
Розширення за замовчуванням не чутливі до регістру. Результат для `ini` та `INI` буде однаковий.
Ви маєте змогу вказати path до потрібної папки, обрати нерекурсивний підрахунок чи пошук, шукати файли враховуючи регістр розширення, включити підрахунок чи пошук у прихованих файлах та папках.

Більш детально: [аргументи CLI](https://github.com/victordomingos/Count-files/blob/master/docs/documentation_ua/howtouse.md#аргументи-cli).

Найбільш простим способом використання є просто ввести команду без будь-яких додаткових аргументів. Результатом цього буде таблиця, що показує частоту для кожного розширення файлу (наприклад: .txt, .py, .html, .css) та загальну кількість знайдених файлів.
Expand Down Expand Up @@ -117,6 +111,15 @@ count-files -t .. [path]
count-files --total .. [path]
```

Ви також можете шукати файли за шаблоном з використанням метасимволів: `*`, `?`, `[seq]`, `[!seq]`.

```
count-files -fm *.py? [path]
```
```
count-files --filename-match *.py? [path]
```

## Ви знайшли помилку чи маєте пропозиції щодо вдосконалення?

Будь ласка, поставте питання в розділі Issues або відкрийте pull request у [репозиторії](https://github.com/victordomingos/Count-files).
60 changes: 60 additions & 0 deletions docs/documentation_ua/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
- [Пошук та отримання списку файлів з певним розширенням](#Пошук-та-отримання-списку-файлів-з-певним-розширенням)
- [Пошук та отримання списку файлів без розширення](#Пошук-та-отримання-списку-файлів-без-розширення)
- [Пошук та отримання списку всіх файлів](#Пошук-та-отримання-списку-всіх-файлів)
- [Пошук файлів за шаблоном: список шляхів до файлів](#Пошук-файлів-за-шаблоном-список-шляхів-до-файлів)
- [Загальна кількість файлів](#Загальна-кількість-файлів)
- [Підрахунок файлів з певним розширенням](#Підрахунок-файлів-з-певним-розширенням)
- [Підрахунок файлів без розширення](#Підрахунок-файлів-без-розширення)
Expand Down Expand Up @@ -135,6 +136,65 @@ count-files --file-extension py --preview \
використовуйте дві крапки `..` як назву для розширення.
Приклад: `count-files --file-extension .. ~/Documents`

### Пошук файлів за шаблоном: список шляхів до файлів

Скорочена форма аргументів:

```
usage: count-files [-a] [-c] [-nr]
[-fm PATTERN] [-fs]
[-p] [-ps PREVIEW_SIZE] [path]
```

Повна форма аргументів:

```
usage: count-files [--all] [--case-sensitive] [--no-recursion]
[--filename-match PATTERN] [--file-sizes]
[--preview] [--preview-size PREVIEW_SIZE] [path]
```

Ви також можете шукати файли за допомогою метасимволів командної оболонки: `*`, `?`, `[seq]`, `[!seq]`.
`*` - відповідає нулю або більше входжень будь-яких символів, `?` - означає один будь-який символ,
`[seq]` - позначає збіг з будь-яким із символів у послідовності, `[!seq]` - позначає збіг з будь-якими символами крім вказаних у послідовності. Для пошуку буквального значення метасимволу, його потрібно обернути в квадратні дужки. Наприклад, "[?]" Відповідає символу "?".

Для текстових файлів доступний короткий попередній перегляд (аргумент `-p` або `--preview`). Розмір тексту попереднього перегляду можна налаштувати за допомогою аргументу `--preview-size`. Якщо шаблон відповідає як підтримуваним, так і непідтримуваним розширенням файлів,
тоді попередній перегляд для непідтримуваних файлів буде пропущений.
Переглянути список розширень, для яких доступний попередній перегляд,
можна з допомогою аргументу `-st` або `--supported-types`.
Якщо потрібна також інформація про розмір кожного окремого файлу
додайте аргумент `-fs` або `--file-sizes`.

Приклад для пошуку файлів з подвійним розширенням:

```
count-files --filename-match *.*.gz [path]
```

Приклад для пошуку .pyc, .pyo, .pyd та подібних файлів:

```
count-files --filename-match *.py? [path]
```

Приклад для пошуку імен файлів, які містять слово "test":

```
count-files --filename-match *test* [path]
```

Приклад для пошуку імен файлів, які починаються зі слова "LICENSE" у верхньому регістрі:

```
count-files --filename-match LICENSE* --case-sensitive [path]
```

Приклад пошуку за конкретним іменем файлу:

```
count-files --filename-match setup.py [path]
```

### Загальна кількість файлів

Скорочена форма аргументів:
Expand Down

0 comments on commit 3a15cc0

Please sign in to comment.