Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/34: Рейтинг темы: голосов - 34, средняя оценка - 4.71
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
1

Поиск файла в сетевой директории командой из формы

18.08.2017, 10:27. Показов 6401. Ответов 65
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день всем!
Подскажите пожалуйста, можно ли выполнить поиск файла с заданным названием, который находится в сетевой папке предприятия и используется для работы производственными подразделениями.

Вкратце для чего.
--Имеем некий справочник, редактируемый и дополняемый конструкторским бюро.
--Справочник выполнен в виде таблицы, как в примере.
--В оригинале разумеется данных больше, но они как бы имеют второстепенное значение в данном вопросе.
--На данный момент, если производятся какие то изменения в КД, то конструктор должен лезть в "дебри сети" , зайти в папку производственного подразделения и там отыскать файл, чтобы отметить его некой меткой, дабы его брали в работу только после просмотра и необходимой коррекции.

На сетевом диске М:\ у каждого из подразделений имеется своя папка например П1;П2 и П3., то есть путь к папкам получается такой :М:\П1 или М:\П2 или М:\П2.

Возможно ли автоматизировать поиск нужного файла в нужной директории по команде из формы.
В примере вобщем-то интуитивно понятно в чем суть вопроса.
Сложность в том еще, что в папках П1, П2 и П3 имеется несколько десятков подпапок, нужно чтобы в них поиск тоже производился.Вот.

Буду очень признателен за живой пример. Спасибо.
Вложения
Тип файла: 7z ПримерПоиск.7z (24.4 Кб, 10 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.08.2017, 10:27
Ответы с готовыми решениями:

Поиск файла в директории
Вот у меня есть две кнопки с такими кодами: java7 if (System.IO.File.Exists("C:\\Program...

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

Поиск файла в директории и всех вложенных подкаталогах
Как сделать поиск одного файла по имени в директории и поддиректориях и последуещее отображение в...

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

65
Эксперт MS Access
26815 / 14494 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
23.08.2017, 14:01 41
Author24 — интернет-сервис помощи студентам
Проверка проблема, конечно. Дело в том, что в поле Деталь имя файла без расширения. И разумеется ничего не находится. Я уже писал об этом, но ТС как-то не отреагировал. А надо всего лишь к параметру file подставить расширение, например
Visual Basic
1
    FindRecurs sd & ".pdf"
1
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
23.08.2017, 14:03  [ТС] 42
Может не работать, если я вместо пути из примера указываю сетевой ресурс имеющий в указании пути кириллицу? Допустим (L:\Контрольные документы\PLASMA ) и т.п.
0
Модератор
Эксперт MS Access
12085 / 4945 / 791
Регистрация: 07.08.2010
Сообщений: 14,525
Записей в блоге: 4
23.08.2017, 14:05 43
Цитата Сообщение от Braser Посмотреть сообщение
Может не работать, если я вместо пути из примера указываю сетевой ресурс имеющий в указании пути кириллицу? Допустим (L:\Контрольные документы\PLASMA ) и т.п.
это я не попробовала, а так нормально работает(правда на локальных каталогах)
1
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
23.08.2017, 14:06  [ТС] 44
В каждой папке с изделием должно находится 3 файла имеющих одинаковое название, но разное расширение. - .dxf; .CDW; .CP их все 3 нужно найти и пометить
0
Модератор
Эксперт MS Access
12085 / 4945 / 791
Регистрация: 07.08.2010
Сообщений: 14,525
Записей в блоге: 4
23.08.2017, 14:06 45
Цитата Сообщение от mobile Посмотреть сообщение
Дело в том, что в поле Деталь имя файла без расширения
это тоже не сработало, задала точное имя
1
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
23.08.2017, 14:12  [ТС] 46
возможно необходимо указать все расширения файлов, которые нужно найти?

Добавлено через 4 минуты
Цитата Сообщение от mobile Посмотреть сообщение
FindRecurs sd & ".pdf"
Точно нашел!!!
0
Модератор
Эксперт MS Access
12085 / 4945 / 791
Регистрация: 07.08.2010
Сообщений: 14,525
Записей в блоге: 4
23.08.2017, 14:14 47
при переименовании(когда то и мне это требовалось) делалась проверка ине и комментариями
--нет старого --ошибка
--есть старое --нет нового --норма
--есть старое --есть новое ----что сделать(переписать или изменить новое имя)
1
Эксперт MS Access
26815 / 14494 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
23.08.2017, 14:16 48
Цитата Сообщение от shanemac51 Посмотреть сообщение
это тоже не сработало, задала точное имя
У меня все находится, даже при большей глубине вложенности
Миниатюры
Поиск файла в сетевой директории командой из формы  
1
Модератор
Эксперт MS Access
12085 / 4945 / 791
Регистрация: 07.08.2010
Сообщений: 14,525
Записей в блоге: 4
23.08.2017, 14:19 49
у вас здесь имя точное
я хотела найти по маске дет11*.* или дет12*.*

при структуре типичной записи (дет/сб)(код)-(вариант)-(готовность).(формат)

например найти дет11 , сделанную или отливкой или ковкой, проверить сколько вариантов техпроцесса дет12 имеется в наличии(где, статус готовности...)
1
Эксперт MS Access
26815 / 14494 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
23.08.2017, 14:27 50
Цитата Сообщение от shanemac51 Посмотреть сообщение
я хотела найти по маске det11*.*
Надо заменить строку
Visual Basic
1
If fso.FileExists(cat(1, i) & "\" & file) Then
на
Visual Basic
1
If Dir(cat(1, i) & "\" & file & ".*") <> "" Then
Тогда не надо будет в параметре функции задавать расширение
1
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
23.08.2017, 14:50  [ТС] 51
Указал ему расширение, он сразу хватанул, подскажите как правильно указать ему еще два...!!!
mobile, вы как всегда правы, гигант мысли, отец русского программирования.... ( далее, только неприкрытая лесть),если честно откровенно, ОЧЕНЬ ОЧЕНЬ БОЛЬШОЕ СПАСИБО за помощь ВсЕм ВсЕм, УРА!. ЗАРАБОТАЛА!!!! Это уже результат, без сомнения! И Я БУДУ СОВЕРШЕННО счастлив на сегодня,если вы мне подскажете ответ на это "....подскажите как правильно указать ему еще два расширения...!!!"

Добавлено через 6 минут
находит без расширения, но после прерименования начинает ругаться сюда

Name cat(1, i) & "/" & file As newname

Добавлено через 4 минуты
пишет Файл не найден!

Добавлено через 7 минут
это после замены
Цитата Сообщение от mobile Посмотреть сообщение
1
If fso.FileExists(cat(1, i) & "" & file) Then
0
Эксперт MS Access
26815 / 14494 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
23.08.2017, 14:57 52
Последний блок с переименованием перепишите на
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
    Dim f
    For i = 0 To UBound(cat, 2)
        If Dir(cat(1, i) & "\" & file & ".*") <> "" Then
            f = Dir(cat(1, i) & "\" & file & ".*")
            Do Until f = ""
                newname = InputBox("Новое имя файла " & f, , cat(1, i) & "\" & f)
                If newname <> "" And newname <> cat(1, i) & "\" & f Then
                    Name cat(1, i) & "\" & f As newname
                End If
                f = Dir
            Loop
        End If
    Next
1
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
23.08.2017, 14:59  [ТС] 53
Не знаю правильно или нет, забацал так:
Visual Basic
1
2
3
4
5
6
    Dim LResult As String, path, i, s, newname, sd
'    path = Array("L:\KDBANK\PLAZMA", "L:\KDBANK\PARTDIR", "L:\KDBANK\ZAGOTOVKA")
    sd = Me.Деталь
    FindRecurs sd & ".cp"
    FindRecurs sd & ".txt"
    FindRecurs sd & ".cdw"
вроде работает как надо, я доволен
0
10747 / 5586 / 1412
Регистрация: 05.10.2016
Сообщений: 15,800
23.08.2017, 15:02 54
Лучший ответ Сообщение было отмечено Braser как решение

Решение

Цитата Сообщение от Braser Посмотреть сообщение
и все найденные нужно пометить как неактуальные, дописав после наименования и расширения какое то условное слово, допустим "изменен".
Так и сделал.
Вот мой вариантик решения - вроде пашет в подпапках всех уровней.
Вложения
Тип файла: rar ПримерПоиск_v02_Eugene-LS.rar (42.5 Кб, 20 просмотров)
2
Эксперт MS Access
26815 / 14494 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
23.08.2017, 15:20 55
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Вот мой вариантик решения - вроде пашет в подпапках всех уровней

'Рекурсивный обход подпапок...
Я тоже сначала пошел на рекурсию. Но когда в эксперименте при обходе папки винды забился стек, то ушел на построение массива. Здесь со стеком можно не волноваться , хватит на все. Рекурсия слишком затратна на больших списках. А на маленьких замечательно работает
1
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
23.08.2017, 15:37  [ТС] 56
Вариантик тоже отличный, единственое, что я, если позволите, убрал бы
Visual Basic
1
& Format(iRenID, "000")
там достаточно просто пометки "-изменен" после расширения, и ассоциативность с приложением теряется, т.е. технолог видит что файл не хотит открываться, значит карачун ему настал.
И еще один вопрос.
Я допустим провожу по кнопке переименования все файлы согласно заданному поиском критерию. запускаю снова поиск этого файла и он мне находит те же файлы, только уже разумеется с пометкой "-изменен". В моем случае, это как бы нежелательно.
Тетенька работает рассеянная в архиве, производит замену, смотрит в список повыше и не помнит, то ли она уже эту деталь забанила, то ли нет, вторично ее открывает, там уже получается в конце файла "-изменен-изменен" тетенька начинает нервничать и жать чего попало и плодит варианты этих файлов....вообщем жизнь, думаю вы видели таких тетенек. вообщем как бы это можно убрать? Здесь надо -Уж если изменил файл, то при повторном нажатии он его уже не видит. Вот.
Извините за критику, в некотором роде, но я безусловно глубоко Вам благодарен, за то что прониклись моей проблемой и потратили думаю, немало времени, сам люблю помогать людям, если есть конечно возможность и силы.
0
10747 / 5586 / 1412
Регистрация: 05.10.2016
Сообщений: 15,800
23.08.2017, 15:42 57
Цитата Сообщение от mobile Посмотреть сообщение
Рекурсия слишком затратна на больших списках. А на маленьких замечательно работает
Спасибо за напоминание.
Я предварительно тестил на своей плотно набитой папочке с кучей файлов - нормально отработало.
А на windows ... действительно процедура захлебнулась.
1
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
23.08.2017, 15:42  [ТС] 58
Цитата Сообщение от mobile Посмотреть сообщение
Рекурсия слишком затратна на больших списках
Это тоже весомый аргумент, на данный момент в базе 38000 деталей, если размножить на 3 вида файлов, (думаю что может заставят еще парочку документов цеплять) итого 5*38000... 190000...явно то мало не покажется.
0
10747 / 5586 / 1412
Регистрация: 05.10.2016
Сообщений: 15,800
23.08.2017, 16:07 59
Цитата Сообщение от Braser Посмотреть сообщение
там достаточно просто пометки "-изменен"
+ Уж если изменил файл, то при повторном нажатии он его уже не видит
Учёл критику и пожелания

А насчёт массива я потом подумаю ...
Вложения
Тип файла: rar ПримерПоиск_v03_Eugene-LS.rar (40.3 Кб, 27 просмотров)
2
Модератор
Эксперт MS Access
12085 / 4945 / 791
Регистрация: 07.08.2010
Сообщений: 14,525
Записей в блоге: 4
23.08.2017, 16:35 60
Цитата Сообщение от Eugene-LS Посмотреть сообщение
А на windows ... действительно процедура захлебнулась.
там есть защищенные папки --они и не открываются, их надо игнорировать
1
23.08.2017, 16:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.08.2017, 16:35
Помогаю со студенческими работами здесь

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

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

Как осуществить поиск файла во всех папках данной директории?
Добрый день! Как осуществить поиск файла во всех папках данной директории? Есть директория, в ней...

Мониторинг файлов в сетевой директории
Здравствуйте. Подскажите, что не так. Есть замечательный инструмент FileSystemWatcher Все отлично...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru