Вопрос
Я получаю отзыв от разработчика о том, что "Единственный способ, которым visual basic (6) может работать с UNC-путем, - это сопоставить его с диском". Это точно?И если да, то в чем основная проблема и есть ли какие-либо альтернативы, кроме подключенного диска?
Решение
Вот один из способов, который работает.
Sub Main()
Dim fs As New FileSystemObject ' Add Reference to Microsoft Scripting Runtime
MsgBox fs.FileExists("\\server\folder\file.ext")
End Sub
Другие советы
У нас есть устаревшее приложение VB6, которое использует UNC для создания строки подключения, поэтому я знаю, что VB6 может это сделать.Часто причиной становятся проблемы с разрешениями.
Даже олдскульный способ обработки файлов действительно работает:
Open "\\host\share\file.txt" For Input As #1
Dim sTmp
Line Input #1, sTmp
MsgBox sTmp
Close #1
Я не думаю, что это Правда, если вы используете Scripting.Runtime
библиотека.
В Oldschool VB было несколько языковых конструкций для обработки файлов.Это зло.Не используйте их.
В VB6 вы не можете использовать ChDrive для UNC-пути.
Начиная с App.Path возвращает UNC-путь, пытаясь использовать ChDrive для этого пути, ChDrive App.Path
приведет к ошибке.
Как говорят в Microsoft, "ChDrive не может обрабатывать UNC-пути и, следовательно, выдает ошибку, когда App.Path возвращает единицу".Для получения дополнительной информации ознакомьтесь с http://msdn.microsoft.com/en-us/library/aa263345 (v=против 60).aspx
Какой тип ввода-вывода файлов вы выполняете?Если это текст, рассмотрите возможность использования FileSystemObject.
Я наблюдал проблемы с путем VB6 UNC, когда существует комбинация приведенных ниже элементов:
- unc указывает на скрытую долю '$'
- имя сервера превышает 8 символов и или содержит нестандартные символы
- часть пути исключительно длинная
- сервер имеет поддержку версии 8.3, отключенную в целях повышения производительности
Обычно ошибка доступа к файлу с путем 75 или 54.Иногда это может быть связано с API, такими как getshortfilename и getshortpathname в вышеупомянутом UNC.
В остальном они отлично работают...Сопоставленный путь обычно не вызывает этих проблем, но эти проклятые сопоставления дисков часто отключаются и могут измениться в любое время, вызывая множество головных болей службы поддержки.