利用FSO技术,使用GetFile函数时。
碰到储如c:\PAGEFILE.SYS会提示文件未找到。 Dim FileSys As New FileSystemObject, FileObj As File
nnn = "c:\PAGEFILE.SYS"
执行下面语句出错,文件不存在。
Set FileObj = FileSys.GetFile(Trim(nnn))
在MSDN帮助中的描述是如果指定的文件不存在,则发生一个错误。如果 nnn = "d:\chapter4\photo\1320051216141228166.JPG"
下面语句执行正确
Set FileObj = FileSys.GetFile(Trim(nnn))
请问各位大侠,if如何写可以绕过
nnn = "c:\PAGEFILE.SYS"产生错误
不执行Set FileObj = FileSys.GetFile(Trim(nnn))对
nnn = "d:\chapter4\photo\1320051216141228166.JPG"不出错时
执行正确的Set FileObj = FileSys.GetFile(Trim(nnn))
碰到储如c:\PAGEFILE.SYS会提示文件未找到。 Dim FileSys As New FileSystemObject, FileObj As File
nnn = "c:\PAGEFILE.SYS"
执行下面语句出错,文件不存在。
Set FileObj = FileSys.GetFile(Trim(nnn))
在MSDN帮助中的描述是如果指定的文件不存在,则发生一个错误。如果 nnn = "d:\chapter4\photo\1320051216141228166.JPG"
下面语句执行正确
Set FileObj = FileSys.GetFile(Trim(nnn))
请问各位大侠,if如何写可以绕过
nnn = "c:\PAGEFILE.SYS"产生错误
不执行Set FileObj = FileSys.GetFile(Trim(nnn))对
nnn = "d:\chapter4\photo\1320051216141228166.JPG"不出错时
执行正确的Set FileObj = FileSys.GetFile(Trim(nnn))
Set FileObj = FileSys.GetFile(Trim(nnn))
end if
关键要素是
FileSys.FileExists(nnn) = True 文件是否存在?
如果 FileSys As New FileSystemObject 判断存在
Set FileObj = FileSys.GetFile(Trim(nnn))
Function OpenFileToOtherFile(SourceFile As String, OtherFile As String)
Dim nnn, b() As String, bb() As String
Dim FileSys As New FileSystemObject, FileObj As File
Debug.Print SourceFile, OtherFile
Open SourceFile For Input As #1
Open OtherFile For Output As #2
Write #2, "m1", "m2", "m3", "m4", "m5", "m6", "m7", "m8"
FileLineCount = 1
Do While Not EOF(1)
Line Input #1, nnn
If FileSys.FileExists(nnn) = True Then
Set FileObj = FileSys.GetFile(Trim(nnn))
With FileObj
m1 = .Name
m2 = LCase(Mid(nnn, InStrRev(nnn, ".") + 1))
m2 = FileSys.GetExtensionName(nnn)
m3 = .Size
m4 = .DateCreated
m5 = .DateLastAccessed
m6 = .DateLastModified
m7 = .Type
m8 = .Path
End With
Write #2, m1, m2, m3, m4, m5, m6, m7, m8
FileLineCount = FileLineCount + 1
End If
Loop
Close #1
Close #2End Function
C:\PAGEFILE.SYS是Windows的虚拟内存文件,不允许任何进程对他操作的。
我用dir c:/s/b > dd.txt 生成文本文件时有很多诸如pagefile.sys的文件,用FSO提取文件的属性时(文件大小、日期和文件文件类型时)要用.GetFile函数,如果没有程序就出错。
我的解决办法是.FileExists(文件名)函数判断这个文件名是否存在。
If FileSys.FileExists(nnn) = True Then
Set FileObj = FileSys.GetFile(Trim(nnn))
With FileObj
采用这个语句后,避免了程序在运行到.GetFile(文件名)时出错。