С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
15 / 13 / 6
Регистрация: 13.03.2013
Сообщений: 130

Поиск файлов по размеру в директории и поддиректориях

13.03.2013, 18:45. Показов 1555. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Пока новичок в этом деле, по этому сильно не пинайте если вопрос глупый.
Нашел пример поиска файлов, подогнал его по своим нуждам, но ни как не могу решить один вопрос. Мне надо искать файлы не по названию, а по размеру, точнее все файлы с размером меньше или ровно 1000 байт. Возможно ли это реализовать на базе этого кода?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Option Explicit
 
Dim fso As New FileSystemObject
Dim fld As Folder
 
Private Sub Command1_Click()
   Dim nDirs As Long, nFiles As Long, lSize As Currency
   Dim sDir As String, sSrchString As String
   sDir = InputBox("Type the directory that you want to search for", _
                   "FileSystemObjects example", "C:\")
   sSrchString = InputBox("Type the file name that you want to search for", _
                   "FileSystemObjects example", "vb.ini")
   MousePointer = vbHourglass
   Label1.Caption = "Searching " & vbCrLf & UCase(sDir) & "..."
   lSize = FindFile(sDir, sSrchString, nDirs, nFiles)
   MousePointer = vbDefault
   MsgBox Str(nFiles) & " files found in" & Str(nDirs) & _
          " directories", vbInformation
   MsgBox "Total Size = " & lSize & " bytes"
End Sub
 
Private Function FindFile(ByVal sFol As String, sFile As String, _
   nDirs As Long, nFiles As Long) As Currency
   Dim tFld As Folder, tFil As File, FileName As String
   
   On Error GoTo Catch
   Set fld = fso.GetFolder(sFol)
   FileName = Dir(fso.BuildPath(fld.Path, sFile), vbNormal Or _
                  vbHidden Or vbSystem Or vbReadOnly)
   While Len(FileName) <> 0
      FindFile = FindFile + FileLen(fso.BuildPath(fld.Path, _
      FileName))
      nFiles = nFiles + 1
      List1.AddItem fso.BuildPath(fld.Path, FileName)  ' Load ListBox
      FileName = Dir()  ' Get next file
      DoEvents
   Wend
   Label1 = "Searching " & vbCrLf & fld.Path & "..."
   nDirs = nDirs + 1
   If fld.SubFolders.Count > 0 Then
      For Each tFld In fld.SubFolders
         DoEvents
         FindFile = FindFile + FindFile(tFld.Path, sFile, nDirs, nFiles)
      Next
   End If
   Exit Function
Catch:  FileName = ""
       Resume Next
End Function
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.03.2013, 18:45
Ответы с готовыми решениями:

Заменить расширения имен файлов в заданной директории и поддиректориях
Привет) Прошу помощи господа. Задача такова: Реализовать сценарий на диалекте языка командного интерпретатора bash, производящий...

Как получить список всех файлов в директории и поддиректориях
Требуется сделать метод, который бы возвращал массив всех файлов находящихся в заданной директории и всех поддиректориях на произвольную...

Поиск файлов по размеру
Только начинаю изучать Bash скрипты. Нашел код скрипта, считающего для заданного каталога(1 аргумент) и всех его подкаталогах суммарный...

8
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
13.03.2013, 20:49
Какой-то сложный у Вас пример
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Form_Load()
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Search FSO.GetFolder("C:\")
End Sub
 
Sub Search(Fold As Object)
Dim SubFold As Object
Dim File As Object
For Each File In Fold.Files
    If File.Size <= 1000 Then Debug.Print File.Path, File.Size
Next File
On Error GoTo ErrHandle
For Each SubFold In Fold.SubFolders
    Search SubFold
Next SubFold
Exit Sub
ErrHandle:
MsgBox "Íåò äîïóñêà ê ïàïêå """ & Fold.Path & """"
Err.Clear
End Sub
1
15 / 13 / 6
Регистрация: 13.03.2013
Сообщений: 130
13.03.2013, 21:02  [ТС]
на лаконичность и не претендовал
а ещё такой вопрос, можно как-то эти найденные файлы посчитать?
0
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
13.03.2013, 21:06
Да уж, посчитать - это самое сложное
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
option explicit
dim c as long
Private Sub Form_Load()
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
c=0
Search FSO.GetFolder("C:\")
msgbox c
End Sub
 
Sub Search(Fold As Object)
Dim SubFold As Object
Dim File As Object
For Each File In Fold.Files
    If File.Size <= 1000 Then Debug.Print File.Path, File.Size:c=c+1
Next File
On Error GoTo ErrHandle
For Each SubFold In Fold.SubFolders
    Search SubFold
Next SubFold
Exit Sub
ErrHandle:
MsgBox "Нет допуска к папке """ & Fold.Path & """"
Err.Clear
End Sub
1
15 / 13 / 6
Регистрация: 13.03.2013
Сообщений: 130
13.03.2013, 21:11  [ТС]
Цитата Сообщение от Апострофф Посмотреть сообщение
Да уж, посчитать - это самое сложное
просто весь день сижу над этим, голова уже не соображает, да ещё и приболел не много
я наверно не так выразился, мне надо посчитать количество всех найденных файлов удовлетворяющих условию
0
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
13.03.2013, 21:17
Цитата Сообщение от forlife Посмотреть сообщение
мне надо посчитать количество всех найденных файлов удовлетворяющих условию
Ну так c - это счетчик, в нём и результат.
0
15 / 13 / 6
Регистрация: 13.03.2013
Сообщений: 130
13.03.2013, 21:25  [ТС]
это я понял
пытаюсь вывести его результат в MsgBox, а он выдаёт несколько сообщений, я так понял для каждой из подпапок, а мне надо получить конечную сумму
0
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
13.03.2013, 21:33
Цитата Сообщение от forlife Посмотреть сообщение
пытаюсь вывести его результат в MsgBox
Я его уже вывел в восьмой строке кода, а как Вы пытаетесь - загадка?
1
15 / 13 / 6
Регистрация: 13.03.2013
Сообщений: 130
13.03.2013, 21:35  [ТС]
да, прошу прощения, проглядел, всё работает более чем здорово!
большое человеческое спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.03.2013, 21:35
Помогаю со студенческими работами здесь

Замена русского текста в нескольких файлах в директории и поддиректориях
Добрый день! 1. Версия питона Python 3.6.9 2. Description: Ubuntu 18.04.3 LTS Release: 18.04 Codename: bionic 3. locale -a C ...

Реализовать поиск в указанном каталоге всех файлов во всех поддиректориях и сформировать XML в нужном формате
Искать в указанном каталоге все файлы во всех поддиректориях и формировать XML в нужном формате. XML записать в директорию рядом с...

Реализовать поиск в указанном каталоге всех файлов во всех поддиректориях и сформировать XML в нужном формате
Задача: Искать в указанном каталоге все файлы во всех поддиректориях и формировать XML в нужном формате. XML записать в директорию...

FindFirst. Поиск во всех поддиректориях, всех файлов
Не получается рекурсивно вызвать 1ую процедуру, почему-то только для первой папки ищет все файлы. unit Unit2; interface ...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru