Автоматический поиск файла - PullRequest
4 голосов
/ 01 ноября 2010

По умолчанию AutoCAD устанавливает текстовый файл acad2010.lsp в указанном месте ниже

Dim FILE_NAME As String = "C:\Program Files\AutoCAD 2010\Support\acad2010.lsp"

Однако, возможно, пользователь / администратор / или третье лицо изменило местоположение этого файла. Можно ли затем найти его с помощью следующего

Dim FILE_NAME As String = "C:\*\acad2010.lsp"

Другими словами, поиск по всему диску c: \ для файла acad2010.lsp?

Если это не сработает, пожалуйста, дайте мне знать, что будет?

Ответы [ 4 ]

3 голосов
/ 01 ноября 2010

Вы можете найти его с помощью FSO.Это не будет быстрым, однако вы делаете это, но это самый быстрый способ, о котором я могу думать.

http://www.microbion.co.uk/developers/fso.htm должно дать вам приблизительное представление о том, как это делается.

1 голос
/ 01 ноября 2010

Ваше решение не будет работать. Невозможно найти его, используя *.(Кстати, это возможно в сценариях ms-builds).Единственный способ сделать это:

1- Create a FindFile function (check for example

http://xlvba.3.forumer.com/index.php?showtopic=125)

2- Use it to locate the exact path of the file. (It could be really time

потребление

3- From this point your code is the same...
0 голосов
/ 15 июня 2015

Если этот файл используется внутренними функциями приложения, установщик запишет раздел реестра для местоположения файла.

Откройте regedit.exe и найдите имя файла и путь.

Вы можете прочитать запись реестра, используя эту строку VBA:

CreateObject("WScript.Shell").RegRead(strRegPath)

Вам может потребоваться завершающая обратная косая черта в адресе ключа, но это безопасный и простой метод доступа к реестру. Подробнее на сайте MSDN:

https://msdn.microsoft.com/en-us/library/x05fawxd%28v=vs.84%29.aspx

0 голосов
/ 01 ноября 2010

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

  1. Запрашивает у пользователя местоположение файла с помощью диалога «Открыть файл». Код для этого зависит от того, какой продукт Office вы используете. В Excel вы бы использовали метод Application.FindFile (подробнее здесь ).
  2. Напишите свою собственную функцию для поиска файла в файловой системе. Microsoft приводит пример здесь .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...