求救!关于文件处理的问题,急!急!急!

camzhang 2003-05-04 09:01:06
怎么判断一个打开一个文件的事件是否成功换句话说就是怎么知道一个文件是否在某个已知文件夹下存在?在VB中怎么写?
...全文
46 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qbilbo 2003-05-05
  • 打赏
  • 举报
回复
第一次用好*.txt以后,再直接dir()返回的就是下一个txt文件,一直到dir()=""为止,表示没有这种类型的文件。

例:
Private Sub Form_Load()
Dim strTemp As String

Me.AutoRedraw = True

strTemp = Dir("C:\windows\*.txt", vbHidden)

If strTemp <> "" Then
Do
Print strTemp
strTemp = Dir()
Loop Until strTemp = ""
End If

End Sub
camzhang 2003-05-04
  • 打赏
  • 举报
回复
再问一点,DIR函数支持“*.txt”吗,如果支持的话,怎么用?
Intelement 2003-05-04
  • 打赏
  • 举报
回复

Private Sub Command1_Click()
Dim remainderQ As Integer
Dim fileI As Integer
Dim StrImei As String, StrSn As String
Dim fso As New FileSystemObject, fil As File, ts As TextStream

Do While Dir("c:\nn\imei" & fileI & ".txt") = ""
fileI = fileI + 1
'++++++++++++++++++++++++++++++
DoEvents '建议加上这一关键字,否则若不存在要站的任何文件,则死循环
'++++++++++++++++++++++++++++++
Loop

Set fso = CreateObject("scripting.filesystemobject")
Set fil = fso.GetFile("c:\nn\imei" & fileI & ".txt")
Set ts = fil.OpenAsTextStream(ForReading)
'++++++++++++++++++++++++++++++
MsgBox ts.AtEndOfStream '这句为真,所以……
'++++++++++++++++++++++++++++++
Text1.Text = Left$(ts.ReadLine, 10)
StrImei = Mid$(ts.ReadLine, 11)

ts.Close
MsgBox StrImei
MsgBox StrSn
End Sub
yangjinhui 2003-05-04
  • 打赏
  • 举报
回复
if dir("c:\AA.txt")<>"" then
msgbox "文件存在!"
else
msgbox "文件不存在!"
end if
camzhang 2003-05-04
  • 打赏
  • 举报
回复
而我把ts.ReadLine存在一个临时的字符串中再操作就好了,是否用了第一句后ts的指针就移动了?
camzhang 2003-05-04
  • 打赏
  • 举报
回复
您说的没错,分马上就给,顺便问一下一个简单问题,如下:
Dim remainderQ As Integer
Dim fileI As Integer
Dim StrImei As String, StrSn As String
Dim fso As New FileSystemObject, fil As File, ts As TextStream

Do While Dir("c:\nn\imei" & fileI & ".txt") = ""
fileI = fileI + 1
Loop

Set fso = CreateObject("scripting.filesystemobject")
Set fil = fso.GetFile("c:\nn\imei" & fileI & ".txt")
Set ts = fil.OpenAsTextStream(ForReading)

"""Text1.Text = Left$(ts.ReadLine, 10)"""
"""StrImei = Mid$(ts.ReadLine, 11)"""

ts.Close
MsgBox StrImei
MsgBox StrSn
加引号的两句,我把哪一句放在后面,那一句就会出现“输入超出文件尾”是为什么呢?
Intelement 2003-05-04
  • 打赏
  • 举报
回复
不知道你是不是要的这个。 :)

Dir 函数


返回一个 String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。

语法

Dir[(pathname[, attributes])]

Dir 函数的语法具有以下几个部分:

部分 描述
pathname 可选参数。用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。如果没有找到 pathname,则会返回零长度字符串 ("")。
attributes 可选参数。常数或数值表达式,其总和用来指定文件属性。如果省略,则会返回匹配 pathname 但不包含属性的文件。


设置值

attributes 参数的设置可为:

常数 值 描述
vbNormal 0 (缺省) 指定没有属性的文件。
vbReadOnly 1 指定无属性的只读文件
vbHidden 2 指定无属性的隐藏文件
VbSystem 4 指定无属性的系统文件
vbVolume 8 指定卷标文件;如果指定了其它属性,则忽略vbVolume
vbDirectory 16 指定无属性文件及其路径和文件夹。


注意 这些常数是由 VBA 所指定的,在程序代码中的任何位置,可以使用这些常数来替换真正的数值。

说明

Dir 支持多字符 (*) 和单字符 (?) 的通配符来指定多重文件。

由于 Macintosh 不支持通配符,使用文件类型指定文件组。可以使用 MacID 函数指定文件类型而不用文件名。比如,下列语句返回当前文件夹中第一个TEXT文件的名称:

Dir("SomePath", MacID("TEXT"))

为选中文件夹中所有文件,指定一空串:

Dir("")

在 Microsoft Windows 中,如果在Dir函数中使用MacID函数,将产生错误。

任何大于256的attribute值都被认为是MacID 函数的值。

在第一次调用 Dir 函数时,必须指定 pathname,否则会产生错误。如果也指定了文件属性,那么就必须包括 pathname。

Dir 会返回匹配 pathname 的第一个文件名。若想得到其它匹配 pathname 的文件名,再一次调用 Dir,且不要使用参数。如果已没有合乎条件的文件,则 Dir 会返回一个零长度字符串 ("")。一旦返回值为零长度字符串,并要再次调用 Dir 时,就必须指定 pathname,否则会产生错误。不必访问到所有匹配当前 pathname 的文件名,就可以改变到一个新的 pathname 上。但是,不能以递归方式来调用 Dir 函数。以 vbDirectory 属性来调用 Dir 不能连续地返回子目录。

提示 由于文件名并不会以特别的次序来返回,所以可以将文件名存储在一个数组中,然后再对这个数组排序。
qbilbo 2003-05-04
  • 打赏
  • 举报
回复
'判断c盘根目录下的AA.txt是否存在。

if dir("c:\AA.txt")<>"" then
msgbox "文件存在!"
else
msgbox "文件不存在!"
end if


不知道你是不是要的这个。 :)

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧