Мне нужно найти файловую систему (обычно привод) для полностью определенного пути к файлу, но при этом указывается только фрагмент имени файла.Excel VBA + Создать список полных имен файлов с именами базовых имен файлов (или аналогичными)
Фрагмент на самом деле является номером детали детали, а файлы для поиска - все типа. .Ww. Кроме того, они называются серией, которая помогает сортировать их; т.е. 1XX-XXXX.idw, 2XX-XXX.idw.
Есть 50 000+ файлов и только с использованием файла FileScriptingObject и рекурсивного чтения каждой папки, тогда их сравнение занимает примерно 2 минуты на поиск.
(дан список номеров деталей, мне нужно заполнить столбец в Excel с полным именем файла)
Я предполагаю, что мой лучший способ пойти об этом будет генерировать индексированный список всех файлы idw, которые я ищу, уменьшая полную строку файла до только базового имени и используя это как ключ. Тем не менее, это все равно потребовало бы своевременного запуска в начале каждого поиска, предполагая, что я использую этот словарь/сбор/список снова и снова для каждого запуска.
Есть ли способ сохранить словарь во внешнем файле, чтобы я мог генерировать индексированный список один раз в день или намного реже?
В противном случае, есть ли лучший способ сделать это с помощью VBA, о котором я не думал?
Вы можете экспортировать словарь в текстовый файл с разделителями табуляции или просто сохранить его на листе. –
Что вы описываете, в основном, то, что ищет файл Windows для неиндексированных местоположений, и я предполагаю, что ожидание результатов Windows Explorer будет, вероятно, в том же порядке. Вы можете создать свой собственный индекс, но тогда вопрос будет таким важным, чтобы он синхронизировался при запуске вашего макроса. – Comintern
Текстовый файл с разделителями табуляции звучит как-то, что мне нужно будет искать! Синхронизация не очень важна; он просматривает только файлы, чтобы заполнить список, чтобы другой макрос знал, куда печатать файл. Конечный пользователь будет предупрежден/легко узнать, не заполнена ли строка, а затем можно вручную ее искать. И, как вы сказали, похоже, что время поиска проводника Windows довольно близко к тому, что делает мой макрос. – MechMachineMan