Vb6 如何检查输入的文件名是否包含无效字符

Vb6 如何检查输入的文件名是否包含无效字符,vb6,Vb6,如何检查文本框中输入的文件名是否有效 在一个文本框中,我正在输入或选择本地计算机或远程计算机的路径和文件名,一旦我选择了文件名,我想检查输入的文件名是否有任何无效字符。 我不能给出类似textbox=“Selected Path”,因为我可以从本地计算机或远程计算机选择文件,但文件名相同。为什么要这样做?如果使用从本地/远程计算机打开文件,将更加直观和易于使用 编辑:如果要检查文件是否存在,可以使用此功能: Function FileExist(file As String) As Boolea

如何检查文本框中输入的文件名是否有效

在一个文本框中,我正在输入或选择本地计算机或远程计算机的路径和文件名,一旦我选择了文件名,我想检查输入的文件名是否有任何无效字符。
我不能给出类似textbox=“Selected Path”,因为我可以从本地计算机或远程计算机选择文件,但文件名相同。

为什么要这样做?如果使用从本地/远程计算机打开文件,将更加直观和易于使用

编辑:如果要检查文件是否存在,可以使用此功能:

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

根据稍后发布的评论进行编辑:

要检查文件名在windows上是否有效

由于Windows体系结构的不同,有效文件名的定义可能因操作系统的组件和所处理的文件系统而异

NTFS文件系统在命名文件方面是最慷慨的。该名称最多可包含32768个Unicode字符。名称可以包含尾随句点、尾随空格,并且两个文件的名称可能只有大小写不同,例如README.TXT和README.TXT

在Win32子系统上,名称最多可以是MAX_PATH字符(在windef.h中定义为260个字符),后面可能没有点或空格,文件名不区分大小写

DOS和16位Windows应用程序仍然限制为8个字符的文件名加上3个字符的扩展名


根据操作系统,您可以在VB代码中应用条件检查来验证文件名是否有效,也可以使用正则表达式来验证文件名。但是,如果您想更精确,请参阅一本书或其他资料,了解有关文件名不同约束的更多信息。

您能定义正确的定义吗?文件必须存在,还是必须是合法的文件名?文件不存在,我想检查输入的文件名是否正确,需要在“错误:”-键入的函数始终返回False。以下是8个字符文件名加3个字符扩展名文件命名方案中的禁止字符。。。请注意,所有字符都用单引号括起来。“;”、“=”、“+”、“,”、“|”和““'、'['、']'、'\'、'/'、'''''和以下是长文件命名方案中的禁止字符…”、''.'、'''、'\'、'/'、':'、'*'、'?'这并不能回答问题。OP询问如何检查文件名是否对Windows有效且不包含非法字符。@Deanna,很抱歉问这个问题,但你在监视我吗?无论我在哪里写smtg,你也在那里;)不,所以justs列出了带有活动的问题。当您发布答案或对20篇帖子进行更改时,这些帖子将同时显示在列表中,显示为活动状态。不管是谁发的,我都会一模一样的回复。
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