powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Раскидать файлы по папкам в соответствии с условием
6 сообщений из 6, страница 1 из 1
Раскидать файлы по папкам в соответствии с условием
    #33848247
jjj676
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Задача в следующем- имеется каталог (c:\Песни\*.mp3)в котором более 2000 файлов предположим *.mp3

И имеется дерево каталогов в каждом из которых по папкам уложены тексты песни с аналогичными названиями, но с расширением txt.

нужно сравнить названия в первом каталоге и найти текст песни с аналогичным названием в дереве каталогов и переместить туда файл mp3.

В ручную я это делать задолбался ((((
Может кто подскажет как это сделать на VBA?

Заранее большое спасибо
...
Рейтинг: 0 / 0
Раскидать файлы по папкам в соответствии с условием
    #33849940
jjj676
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Упростим задачу. Может кто знает как через VBA перебирать файлы в определенном каталоге (включая вложенные каталоги) и сравнить название каждого перебираемого файла с определённым условием ?
...
Рейтинг: 0 / 0
Раскидать файлы по папкам в соответствии с условием
    #33850037
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://sql.ru/forum/actualfile.aspx?id=2851636%5D%7C>]http://sql.ru/forum/actualfile.aspx?id=2851636]|> http://sql.ru/forum/actualfile.aspx?id=2851636" TARGET="_blank">http://sql.ru/forum/actualfile.aspx?id=2851636 по последним данным разведки нужно применение "рекурсии", вроде в этом файле, который приложен реализована она. штука сравнивает две папки на наличие копий файлов и в эксель выдает ответ, есть ли копия или нет.
...
Рейтинг: 0 / 0
Раскидать файлы по папкам в соответствии с условием
    #33850045
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://sql.ru/forum/actualfile.aspx?id=2851636 - исправленная ссылка
...
Рейтинг: 0 / 0
Раскидать файлы по папкам в соответствии с условием
    #33850106
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sub Example()
Dim s As String
Dim fso As New FileSystemObject
Dim fold1 As Folder, fold2 As Folder, fold3 As Folder
Dim curFile1 As File, curFile2 As File
Dim s1() As String
On Error Resume Next
Set fold1 = fso.GetFolder("c:\Песни\")
Set fold2 = fso.GetFolder("c:\Текст\")
For Each fold3 In fold2.SubFolders
For Each curFile In fold3.Files
s1 = Split(curFile.Name, ".")
s = fold1.Path & "\" & s1(0) & ".mp3"
Set curFile2 = fso.GetFile(s)
If Not curFile2 Is Nothing Then
curFile2.Copy (fold3.Path & "\")
End If
Set curFile2 = Nothing
Next
Next
Set fold1 = Nothing
Set fold2 = Nothing
MsgBox "Готово", vbInformation
End Sub
в референс надо подключить библиотеку "Microsoft Scripting Runtime"
...
Рейтинг: 0 / 0
Раскидать файлы по папкам в соответствии с условием
    #33850134
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
Sub Example()
    Dim s As String
    Dim fso As New FileSystemObject
    Dim fold1 As Folder, fold2 As Folder, fold3 As Folder
    Dim curFile1 As File, curFile2 As File
    Dim s1() As String
    On Error Resume Next
    Set fold1 = fso.GetFolder("c:\Песни\") ' папка где лежат ".mp3"
    Set fold2 = fso.GetFolder("c:\Текст\") ' папка c подпапками где лежат ".txt"
    For Each fold3 In fold2.SubFolders 'пробег по колекции подпапок
        For Each curFile In fold3.Files 'пробег по файлам в подпапке
            s1 = Split(curFile.Name, ".")   ' определение имени без расширения
            s = fold1.Path & "\" & s1( 0 ) & ".mp3" 'создание нужной строки
            Set curFile2 = fso.GetFile(s)   'поиск в папке где лежат ".mp3"
            If Not curFile2 Is Nothing Then ' проверка
                curFile2.Copy (fold3.Path & "\") 'копирование
            End If
            Set curFile2 = Nothing  ' обнуление ссылки
        Next
    Next
    Set fold1 = Nothing ' обнуление ссылки
    Set fold2 = Nothing ' обнуление ссылки
    MsgBox "Готово", vbInformation '
End Sub
в референс надо подключить библиотеку "Microsoft Scripting Runtime"
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Раскидать файлы по папкам в соответствии с условием
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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