powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Перебор файлов в каталоге
25 сообщений из 29, страница 1 из 2
Перебор файлов в каталоге
    #34687028
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю (или прошу) обсудить вопрос перебора всех файлов в каталоге. Для примера принимаю что нужно просмотреть весь каталог с подкаталогами и выбрать имена всех файлов с расширением XLS.

Где-то надыбал такой вариант
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub CommandButton1_Click()
Dim i As Long
Dim ArrName As Variant
 Columns( 1 ).ClearContents
    
    With Application.FileSearch
        .NewSearch
        .LookIn = ThisWorkbook.Path & "\"
        .SearchSubFolders = True
        .Filename = "*.xls"
        If .Execute >  0  Then
            For i =  1  To .FoundFiles.Count
                ArrName = Split(.FoundFiles(i), "\")
                ActiveSheet.Range("A" & Rows.Count).End(xlUp).Offset( 1 ) = ArrName(UBound(ArrName))
            Next i
        Else
            MsgBox "There were no files found."
        End If
    End With
End Sub

Но несколько раз встречал в интернете мнение, что с FileSearch бывают глюки. Так ли это?

Потом где то видел такой вариант
Код: plaintext
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.
'Выбрать файлы XLS в каталоге и подкаталогах
Private Sub CommandButton4_Click()
  Columns( 3 ).ClearContents
  ВыбратьКаталогПодкаталогиFSO ActiveWorkbook.Path
End Sub

'FileSystemObject - БИБЛИОТЕКА  Microsoft Scripting Runtime
Sub ВыбратьКаталогПодкаталогиFSO(Папка As String)
Dim fso As New FileSystemObject
Dim fold1 As Folder, fold2 As Folder
Dim iFile As File
Dim ArrName As Variant
 
 Set fold1 = fso.GetFolder(Папка)

 For Each fold2 In fold1.SubFolders
   ВыбратьКаталогПодкаталогиFSO (fold2.Path + "\")        'лезем в рекурсию
 Next
  
 For Each iFile In fold1.Files
   If UCase(Right(iFile,  3 )) = "XLS" Then
      ArrName = Split(iFile, "\")
      ActiveSheet.Range("C" & Rows.Count).End(xlUp).Offset( 1 ) = ArrName(UBound(ArrName))
   End If
 Next

End Sub

Но тут нужно библиотеку Microsoft Scripting Runtime подключать, хотя вроде ничего в этом страшного и нет

Сделал ещё такой вариант

Код: plaintext
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.
Private Sub CommandButton5_Click()
 Columns( 2 ).ClearContents
 ВыбратьКаталогПодкаталогиDIR ActiveWorkbook.Path
End Sub

Sub ВыбратьКаталогПодкаталогиDIR(Папка As String)
Dim MyPath As String, iFileName As String, jFileName As String
Dim myArray() As Variant, n As Long, x As Long
 
 MyPath = Папка & "\"
 iFileName = Dir(MyPath, vbDirectory)

 n =  0 
 Do While iFileName <> ""
  If GetAttr(MyPath & iFileName) =  16  Then  ' 48 папка с атрибутом архивная
      If iFileName <> "." And iFileName <> ".." Then
         ReDim Preserve myArray(n) As Variant
         myArray(n) = iFileName
         n = n +  1 
      End If
    Else
      If UCase(Right(iFileName,  3 )) = "XLS" Then
         ActiveSheet.Range("B" & Rows.Count).End(xlUp).Offset( 1 ) = iFileName
      End If
  End If
  
  iFileName = Dir
 Loop


 If n >  0  Then
   For x =  0  To UBound(myArray)
     Debug.Print myArray(x)
     ВыбратьКаталогПодкаталогиDIR (MyPath & myArray(x))
   Next
 End If
 
End Sub

Вот хочу чтобы вы прокоментировали эти варианты, высказали своё мнение, может есть какие варианты проще? В последнем варианте может как то по другому можно определить указывает ли ссылка на папку или файл?
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34687066
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В третьем варианте всё таки приходится проверять ещё и папки с атрибутом архивная (48)

Прилагаю файл со всеми моими вариантами, что проще было, и жду отзывов!
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34687067
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот и файл
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34687088
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadНо несколько раз встречал в интернете мнение, что с FileSearch бывают глюки. Так ли это?Не встречал. Ни сам глюков не встречал и историю про глюки первый раз слышу.
Единственное что меня не устраивает в FileSearch - он умеет искать только по стандартным виндовым маскам (* и ?) а мне этого не всегда хватает...

DeggasadПотом где то видел такой вариант
....
Но тут нужно библиотеку Microsoft Scripting Runtime подключать, хотя вроде ничего в этом страшного и нетЛично я подобный вариант использую чаще всего, еще добавляю regexp фильтрацию имен файлов и жить становится легко и замечательно.

DeggasadСделал ещё такой вариант
...
В последнем варианте может как то по другому можно определить указывает ли ссылка на папку или файл?Можно и через Dir - самый Бейсиковый вариант. А читать аттрибуты файла это самый правильный способ различить каталог и файл.

А вообще, использовать можно любой из трех показаных, какой больше нравится, тот и бери. Это самые простые и широко описаные вариатны для VBA и вообще Бейсикового мира. Есть еще с десяток способов, но они будут слегка посложнее.
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34687098
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы выбрал "ВыбратьКаталогПодкаталогиFSO", да и так делал. Только в качестве параметра при рекурсии передавал бы не (Папка As String), а (Папка As Folder). Тогда можно код записать короче. Можно и выделение имени упростить, там же есть свойство .Name у объекта File.
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34687122
Pavel55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl, я тоже много встречал в интернете плохих отзывов про FileSearch, а как вы думаете, почему Microsoft отключила эту функцию в Office 2007? Я думаю, Mr. KL (MVP Excel) нам больше расскажет про глюки.
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34687139
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl
еще добавляю regexp фильтрацию имен файлов и жить становится легко и замечательно.


Что такое regexp фильтрация? Не пояните ли? Может и мне станет легко?
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34687203
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vbaproТолько в качестве параметра при рекурсии передавал бы не (Папка As String), а (Папка As Folder). Тогда можно код записать короче. Можно и выделение имени упростить, там же есть свойство .Name у объекта File.

Полезное замечание. Вот что получилось!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
'Выбрать файлы XLS в каталоге и подкаталогах

Private Sub CommandButton4_Click()
Dim fso As New FileSystemObject
  Columns( 3 ).ClearContents
  ВыбратьКаталогПодкаталогиFSO fso.GetFolder(ActiveWorkbook.Path)
End Sub

'FileSystemObject - БИБЛИОТЕКА  Microsoft Scripting Runtime
Sub ВыбратьКаталогПодкаталогиFSO(Папка As Folder)
Dim fso As New FileSystemObject, fold As Folder, iFile As File

 For Each fold In Папка.SubFolders
   ВыбратьКаталогПодкаталогиFSO fold        'лезем в рекурсию
 Next
  
 For Each iFile In Папка.Files
   If UCase(Right(iFile,  3 )) = "XLS" Then
      ActiveSheet.Range("C" & Rows.Count).End(xlUp).Offset( 1 ) = iFile.Name
   End If
 Next

End Sub

Правильно ли я понимаю что мне нужно и в первой процедуре обявить
Код: plaintext
Dim fso As New FileSystemObject
и воспользоваться функцией GetFolder или можно как то по другому первый раз подсунуть папку?
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34687228
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadПравильно ли я понимаю что мне нужно и в первой процедуре обявить
Код: plaintext
Dim fso As New FileSystemObject
и воспользоваться функцией GetFolder или можно как то по другому первый раз подсунуть папку?правильно, но я бы ввел еще одну переменную, и передавал не вызов fso.GetFolder(ActiveWorkbook.Path), а переменную с результатом вызова, так и яснее и для отладки проще.
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34687269
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок спасибо!
Вот мне например изначально больше всего нравился вариант с Dir (наверное потому что я им раньше польовался для одной папки), хотя с FileSystemObject
Гораздо красивее и понятнее
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34687292
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl DeggasadНо несколько раз встречал в интернете мнение, что с FileSearch бывают глюки. Так ли это?Не встречал. Ни сам глюков не встречал и историю про глюки первый раз слышу.
Единственное что меня не устраивает в FileSearch - он умеет искать только по стандартным виндовым маскам (* и ?) а мне этого не всегда хватает...

http://bbs.vbstreets.ru/viewtopic.php?p=6667141#6667141



KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34687436
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)

http://bbs.vbstreets.ru/viewtopic.php?p=6667141#6667141



KL
[MVP - Microsoft Excel]

Привет

Этот топик я видел давно
Ну а ты что скажашь? Что выбрать? Каккие +/- вариантов.
Просто нужно что-то одно выбрать для использования, так сказать пора бы и определиться, а всё никак. Благо это несрочно, вот вот и решил выслушать мнения?
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34687572
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL) http://bbs.vbstreets.ru/viewtopic.php?p=6667141#6667141
Ок. Слухи о глюках вижу. Инструкцию как повторить глюк не вижу. Сам на глюки не напарывался. Вывод? :)
И вообще, FileSearch в VBA это всего-лишь интерфейс к стандартной виндовой службе поиска файлов. Нажми Win+F и получишь тот же самый функционал только с окошками.

DeggasadЧто такое regexp фильтрация? Не пояните ли? Может и мне станет легко?
Ну вот например, у тебя в втором и третьем примере есть проверка на xls:
Код: plaintext
 If UCase(Right(iFile,  3 )) = "XLS" Then
А я хочу расширить ее и сделать проверку на несколько Экселевских расширений, предложишь писать:
Код: plaintext
 If UCase(Right(iFile,  3 )) = "XLS" Or UCase(Right(iFile,  3 )) = "XLT" Or UCase(Right(iFile,  3 )) = "XLA" Then
и так далее для всех расширений?
А с регулярными выражениями это будет например так:
Код: plaintext
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.
Public Sub test()
  Columns( 3 ).ClearContents
  GetFileListFSO "c:\projects", "\.xl(s|t|a)$"
End Sub

Sub GetFileListFSO(ParentFolder As String, FileMask As String)
    Dim fso As New FileSystemObject
    Dim re As New RegExp
    Dim fold1 As Folder, fold2 As Folder
    Dim iFile As File
    Dim ArrName As Variant
 
    Application.StatusBar = ParentFolder
    Set fold1 = fso.GetFolder(ParentFolder)
    
    For Each fold2 In fold1.SubFolders
        GetFileListFSO fold2.Path & "\", FileMask
    Next
    re.Pattern = FileMask
    re.IgnoreCase = True
    
    For Each iFile In fold1.Files
        If re.test(iFile.Name) Then
            ArrName = Split(iFile.Name, "\")
            ActiveSheet.Range("C" & Rows.Count).End(xlUp).Offset( 1 ) = ArrName(UBound(ArrName))
        End If
    Next
    Application.StatusBar = False
End Sub
Здесь маска "\.xl(s|t|a)$" задает что меня не волнует как имя файла начинается, но оно должно кончатся на .xls , .xlt или .xla и ни на что другое.
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34687581
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... подумал и решил дополнить, начиная с этой фразы:
White OwlЗдесь маска "\.xl(s|t|a)$" задает что меня не волнует как имя файла начинается, но оно должно кончатся на .xls , .xlt или .xla и ни на что другое.
... Но надо учесть что регулярные выражения при удлинении очень быстро перестают быть читабельными. Найти ошибку в шаблоне в десять-пятнадцать строк можно довольно легко (при соответсвующем опыте конечно), найти ошибку в сорокосимвольном шаблоне практически нереально.
Но со всех остальных точек зрения regexp идеальное средство для не точного сравнения строк.
Вот представь что у тебя есть кучка xls и кучка запакованых xls которым ты дал имя типа MyBook.xls.zip
Запусти:
Код: plaintext
GetFileListFSO "c:\projects", "\.xl[sta](.zip)?$"
и получишь список в котором будут файлы Book1.xls и Book2.xlt.zip, но не будет SomeArchive.zip.
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34687594
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl KL (XL) http://bbs.vbstreets.ru/viewtopic.php?p=6667141#6667141
Ок. Слухи о глюках вижу. Инструкцию как повторить глюк не вижу. Сам на глюки не напарывался. Вывод? :)
Да, здесь мне пожалуй трудно привести веские доводы :-( Причина в том, что года 3-4 назад, когда посыпались жалобы на то, что FileSearch возвращает неверные и труднопредсказуемые результаты, Инет кишел примерами воспроизведения глюка. На сайтах Джона Уокенбаха и Чипа Пирсона были целые статьи с примерами и настойчивыми рекомендациями переходить на FSO и Dir. Но в один прекрасный день эти статьи были убраны, видимо авторы сочли, что никто и так не пытается использовать FileSearch, и активные гонения на FileSearch перешли в полный "рэйдио сайленс".

:-0

Так что вывод: или веришь мне и еще нескольким Excel MVP на слово ( http://tinyurl.com/2ngsfz ), а также тому, что MS сам заблокировал FileSearch в XL2007, или продолжаешь использовать FileSearch на свой страх и риск ;-)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34687596
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadНу а ты что скажашь? Что выбрать? Каккие +/- вариантов.

Если надо с субдиректориями, то я предпочитаю FSO, если только первый уровень, то Dir. К приведенным вариантам мне пожалуй добавить нечего :-)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34767239
evgenius_b
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошу извинить, достаточно сложно воспринять общение профи, но чувствую, моя задача схожа.
Надо последовательно обрабатывать файлы в папке, которую указывает пользователь в выскакиваемом диалоговом окне.

Чего-то не могу найти, как получить с помощью диалога путь к интересуемой папке.
Направьте, плиз.

Каким методом или объектом пользоваться? Можно пример?
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34767286
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgenius_bпрошу извинить, достаточно сложно воспринять общение профи, но чувствую, моя задача схожа.
Надо последовательно обрабатывать файлы в папке, которую указывает пользователь в выскакиваемом диалоговом окне.

Чего-то не могу найти, как получить с помощью диалога путь к интересуемой папке.
Направьте, плиз.

Каким методом или объектом пользоваться? Можно пример?
Код: plaintext
Application.GetOpenFilename
поищи по форуму примеры их много
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34767577
evgenius_b
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, но им узнаем полный путь к файлу.

Код: plaintext
1.
2.
3.
4.
fileToOpen = Application _
    .GetOpenFilename()
If fileToOpen <> "" Then
    MsgBox "Open " & fileToOpen
End If


Я представляю один вариант получения пути к папке указанного файла:

разбиваем fileToOpen на элементы маской "\"
каждый элемент заносим в массив
снова создаем строку из элементов массива, только без последнего.

Изврат? Или есть пути проще?
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34767671
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FSO GetFolder поможет
пример выше от White Owl
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34767766
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИзврат? Или есть пути проще?

Код: plaintext
dirPath = Left(fileToOpen , InStrRev(fileToOpen, "\"))


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34767903
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgenius_b
Чего-то не могу найти, как получить с помощью диалога путь к интересуемой папке.
Направьте, плиз.

Каким методом или объектом пользоваться? Можно пример?
Если у Вас Excel2002 и выше, можно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub GetAFolder2()
'   Для Excel 2002
    If Val(Application.Version) <  10  Then
        MsgBox "Требуется Excel 2002 или более поздняя версия.", vbCritical
        Exit Sub
    End If
    With Application.FileDialog(msoFileDialogFolderPicker)
        .InitialFileName = Application.DefaultFilePath & "\"
        .Title = "Укажите расположение резервной копии"
        .Show
        If .SelectedItems.Count =  0  Then
            MsgBox "Отменено"
        Else
            MsgBox .SelectedItems( 1 )
        End If
    End With
End Sub
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34767956
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для Excel 97 и выше

Код: plaintext
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.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
'Объявление 32-битовых функций API
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
  Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long

Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Public Type BROWSEINFO
    hOwner As Long
    pidlRoot As Long
    pszDisplayName As String
    lpszTitle As String
    ulFlags As Long
    lpfn As Long
    lParam As Long
    iImage As Long
End Type

Sub GetAFolder1()
'   В Excel 97 или более поздних версиях
    Dim Msg As String
    Dim UserFile As String
    Msg = "Укажите расположение резервной копии."
    UserFile = GetDirectory(Msg)
    If UserFile = "" Then
        MsgBox "Отменено"
    Else
        MsgBox UserFile
    End If
End Sub


Function GetDirectory(Optional Msg) As String
    Dim bInfo As BROWSEINFO
    Dim path As String
    Dim r As Long, x As Long, pos As Integer
 
'   Корневая папка = Рабочий стол
    bInfo.pidlRoot =  0 &

'   Заголовок окна
    If IsMissing(Msg) Then
        bInfo.lpszTitle = "Выберите папку."
    Else
        bInfo.lpszTitle = Msg
    End If
    
'   Тип возвращаемой папки
    bInfo.ulFlags = &H1

'   Отображение диалогового окна
    x = SHBrowseForFolder(bInfo)
    
'   Проверка результата
    path = Space$( 512 )
    r = SHGetPathFromIDList(ByVal x, ByVal path)
    If r Then
        pos = InStr(path, Chr$( 0 ))
        GetDirectory = Left(path, pos -  1 )
    Else
        GetDirectory = ""
    End If
End Function
Из книги Джона Уокенбаха Excel 2002
...
Рейтинг: 0 / 0
Перебор файлов в каталоге
    #34767979
evgenius_b
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итог коллективной работы :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub SelectFolder2SearchFiles()

Dim fileToOpen As String
Dim dirPath As String

fileToOpen = Application _
    .GetOpenFilename()
If fileToOpen <> "" Then
    MsgBox "Open " & fileToOpen
End If

dirPath = Left(fileToOpen, InStrRev(fileToOpen, "\"))

MsgBox "Путь к выбранному файлу " & dirPath
End Sub

Пасиба.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Перебор файлов в каталоге
    #37528684
Фотография natalitvinenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel55White Owl, я тоже много встречал в интернете плохих отзывов про FileSearch, а как вы думаете, почему Microsoft отключила эту функцию в Office 2007?

Позвольте поднять старую тему- что, реально FileSearch отключено и в новых программах его лучше не использовать? Спасибо.
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Перебор файлов в каталоге
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]