393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
|
|
1 | |
Поиск файла в сетевой директории командой из формы18.08.2017, 10:27. Показов 6398. Ответов 65
Метки нет (Все метки)
Добрый день всем!
Подскажите пожалуйста, можно ли выполнить поиск файла с заданным названием, который находится в сетевой папке предприятия и используется для работы производственными подразделениями. Вкратце для чего. --Имеем некий справочник, редактируемый и дополняемый конструкторским бюро. --Справочник выполнен в виде таблицы, как в примере. --В оригинале разумеется данных больше, но они как бы имеют второстепенное значение в данном вопросе. --На данный момент, если производятся какие то изменения в КД, то конструктор должен лезть в "дебри сети" , зайти в папку производственного подразделения и там отыскать файл, чтобы отметить его некой меткой, дабы его брали в работу только после просмотра и необходимой коррекции. На сетевом диске М:\ у каждого из подразделений имеется своя папка например П1;П2 и П3., то есть путь к папкам получается такой :М:\П1 или М:\П2 или М:\П2. Возможно ли автоматизировать поиск нужного файла в нужной директории по команде из формы. В примере вобщем-то интуитивно понятно в чем суть вопроса. Сложность в том еще, что в папках П1, П2 и П3 имеется несколько десятков подпапок, нужно чтобы в них поиск тоже производился.Вот. Буду очень признателен за живой пример. Спасибо.
0
|
18.08.2017, 10:27 | |
Ответы с готовыми решениями:
65
Поиск файла в директории Поиск файла в конкретной директории Поиск файла в директории и всех вложенных подкаталогах Поиск по сигнатуре заданного файла в указанной директории |
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
|
|
18.08.2017, 13:23 [ТС] | 2 |
Изменил немного функционал в примере, теперь нужно просто поочередно в каждой из 3-х директорий проверить имя файла которое совпадает с указанным в поле [Деталь] по нажатию кнопки. Сам поискал решение, вроде как функцией Dir можно воспользоваться, вот только подойдет ли она в моем случае? Народ помогите, жизненно важно. хотя бы примерчик подобный...
0
|
26815 / 14494 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
18.08.2017, 18:31 | 3 | |||||
Сообщение было отмечено alvk как решение
Решение
Не нужны там 3 кнопки, достаточно одной. Если файл в любой из них, проверка прекращается.
В массиве path пути к папкам, измените на правильные. В строке Dir задано любое расширение файла: "*". Замените на правильное, например "xls" или "txt".
2
|
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
|
|
19.08.2017, 00:08 | 4 |
Можно использовать для этой цели именно сетевой путь к диску:
\\server\Folder\*.xls тогда без разницы какой там у пользователя путь на машине
0
|
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
|
|
21.08.2017, 07:00 [ТС] | 5 |
Спасибо за ответ, есть ньюанс. Одна загвоздка, если допустим один и тот же файл используют в работе два подразделения, но файл этот находится в первом подразделении по такому пути L:\cam_mtp2, а в другом L:\cam_mtp3\Стойки, то он указывает только на первый найденный вариант., а возможно ли реализовать поиск так, чтобы были показаны эти все найденные файлы с указанием пути их нахождения, по типу поиска в Windows? Ну или хотя бы без указания пути, чтобы была возможность "пометить" их как неактуальные для производства? Это было бы самое то что нужно.
Добавлено через 3 минуты Пометить, значит просто добавить к наименованию какой то символ, или дописать в конце например "Стойка 123.123.001_изм", чтобы технолог перед запуском в работу понял, что начальный файл КД изменен и нужно изменить или полностью заменить свой файл в базе Добавлено через 7 минут mobile, вы говорите что не нужны три кнопки, но у вас поиск прекращается после 1 положительного результата, мне в моем случае нужно найти файлв каждой из этих директорий и в их подпапках и показать пользователю. Получается все таки нужны 3 кнопки. Для поиска в каждой из директорий своя кнопка?
0
|
26815 / 14494 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
21.08.2017, 08:02 | 6 | |||||
Достаточно одной кнопки
1
|
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
|
||||||
21.08.2017, 08:35 [ТС] | 7 | |||||
Не хотит все равно искать далее первого полученного результата...
вы здесь не пропустили символ ""
Добавлено через 10 минут Скажите можно ли вывести результат поиска не в виде MsgBox, а в виде окна поиска , в котором можно сразу переименовать найденный файл(ы)?
0
|
26815 / 14494 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
21.08.2017, 08:36 | 8 | |||||
Рассеяность и форум глотает слэши
2
|
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
|
|
21.08.2017, 08:39 [ТС] | 9 |
По сути если использовать MsgBox, то существующая схема работы не меняется, пользователь запускает поиск, получает сообщение, начинает идти по указанному пути к папке(ам) содержащим файл, по сути все так же и остается, разве что известен конкретный путь. Хотелось бы именно реализовать задуманное по схеме: нашел> переименовал> закрыл. Или так не получится сделать?
0
|
26815 / 14494 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
21.08.2017, 09:03 | 10 | |||||
Получится и так
1
|
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
|
|
21.08.2017, 11:01 [ТС] | 11 |
Однозначно, вариант решения хороший, но не ищет в подпапках этих директорий, файлы и там могут находится. и почему то на отмену переименования файла выдает ошибку: "Файл уже существует".
Добавлено через 1 час 9 минут Подскажите пожалуйста, как указать в коде VBA, чтобы поиск во вложенных папках тоже производился, это очень важная часть Марлезонского балета.
0
|
26815 / 14494 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
21.08.2017, 11:53 | 12 | |||||
Обойти отказ от переименования: вставьте после строки с инпутбоксом
1
|
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
|
|
21.08.2017, 12:56 [ТС] | 13 |
Три директории в корне постоянные L:\cam_mtp1(2-3), количество папок в них может увеличиваться, либо уменьшаться, каждая вложенная папка содержит три вида файлов - чертежи и файлы для обработки и использования. Общее количество файлов в папке может достигать, думаю не более 40-50. Создание папок во вложенных папках запрещено регламентом. Т.е. максимальное что может быть L:\cam_mtp1\ ZF1150 \ Стойка123.456.001.CDW - файл чертежа, Стойка123.456.001.dxf - файл для обработки, Стойка123.456.001.cp - станочный. Вот такие 3 вида файлов соответственно на все детали в папке.
Добавлено через 22 минуты ЭЭххх, еще бы понимать, как FSO сюда прикрутить... или цикл обхода Dir - ом. так глубоко я не копал еще,имею чисто поверхностное представление.
0
|
26815 / 14494 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
21.08.2017, 14:06 | 15 | |||||
Если, как Вы пишете уровень вложенности всегда 2 - папка>подпапка, то можно так:
1. Исправляем головную процедуру 2. Создаем функцию поиска и замены в подпапках
1
|
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
|
||||||
21.08.2017, 14:24 [ТС] | 16 | |||||
Спасибо за ссылку, будем изучать, да прибудет со мной сила...
Добавлено через 6 минут выдал ошибку компиляции ByRef argument tipe mismatch ругается сюда
0
|
Модератор
|
||||||
21.08.2017, 14:35 | 17 | |||||
переменная path(i) типа variant. а к заголовке функции --строка string
1
|
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
|
|
22.08.2017, 10:47 [ТС] | 18 |
И как подправить чтобы заработала ?
0
|
Модератор
|
|
22.08.2017, 10:52 | 19 |
все та жа правая МЫША
1
|
393 / 137 / 37
Регистрация: 16.03.2013
Сообщений: 1,491
|
|
22.08.2017, 13:17 [ТС] | 20 |
Сообщение было отмечено mobile как решение
Решение
все загадками говорите...
1
|
22.08.2017, 13:17 | |
22.08.2017, 13:17 | |
Помогаю со студенческими работами здесь
20
Организовать поиск заданного файла в указанной директории и ее поддиректории Как сделать поиск файла в выбранной директории и открыть в мемо1 Как осуществить поиск файла во всех папках данной директории? Мониторинг файлов в сетевой директории Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |