Как проверить, содержит ли введенное имя файла недопустимые символы или нет - PullRequest
1 голос
/ 13 июля 2009

Как проверить, является ли имя файла, введенное в текстовое поле, действительным или нет?

В текстовом поле я вхожу или выбираю путь и имя файла на локальном или удаленном компьютере, после выбора имени файла я хочу проверить, не содержит ли введенное имя файла недопустимые символы. Я не могу дать что-то вроде textbox = «Selected Path», потому что я могу выбрать файл на локальном или удаленном компьютере, но имя файла такое же.

Ответы [ 3 ]

1 голос
/ 13 июля 2009

Отредактировано на основе комментариев, опубликованных позже:

Чтобы проверить имя файла, если оно действительно или нет в Windows ....

Из-за различий в архитектуре Windows определение допустимого имени файла может различаться в зависимости от компонента операционной системы и файловой системы, с которой вы имеете дело.

Файловая система NTFS является наиболее щедрой в именовании файлов. Имя может содержать до 32 768 символов Юникода. Имя может содержать конечные периоды, конечные пробелы, и два файла могут иметь имена, которые отличаются только в случае, например, README.TXT и readme.txt.

В подсистеме Win32 имя может содержать не более MAX_PATH символов (определено в windef.h как 260 символов), может не содержать конечных точек или пробелов, а имена файлов не чувствительны к регистру.

DOS и 16-разрядные приложения Windows по-прежнему ограничены 8-символьным именем файла и 3-символьным расширением.

В зависимости от операционной системы вы можете применять условные проверки в своем VB-коде, чтобы проверить правильность имени файла, или вы можете использовать регулярное выражение для проверки имени файла. Однако, если вы хотите быть точным, обратитесь к книге или другим источникам для получения дополнительной информации о различных ограничениях на имена файлов.

0 голосов
/ 11 октября 2012
Function FileExists(FilePath as string) as Boolean
   On error goto Err
   Dim smtg
   FileExists=True
   smtg=GetAttr(FilePath)  'Here will cause an error if file is missing, and will go to Err:
   Exit Function
 Err:
   FileExists=True
End Function
0 голосов
/ 13 июля 2009

Почему вы хотите сделать это так? Было бы гораздо более интуитивно понятным и простым в использовании, если вы используете Common Dialog Control ActiveX , чтобы открыть файл с локального / удаленного компьютера.

РЕДАКТИРОВАТЬ: Если вы хотите проверить, существует ли файл, вы можете использовать эту функцию:

Function FileExist(file As String) As Boolean
    On Error GoTo Error
    'get the file attributes, and make sure what
    'is being passed isnt a directory
    FileExist = (GetAttr(file) And vbDirectory) = 0
Error:
    'Return False if an error occurs
    FileExist = False
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...