zerozha 发表于 2009-3-8 22:18:13

fileopen打开文件出错


$search = FileFindFirstFile(@WorkingDir&"\test\*.txt")
$out_vcf = FileOpen(@WorkingDir&'\out.txt', 8 + 1)

                                                While 1
                                                        $file = FileFindNextFile($search)
                                                        If @error Then ExitLoop
                                                        $in_vcf = FileOpen($file, 0)
                                                        If $in_vcf = -1 Then
                                                                MsgBox(48, "错误", '打开文件' & $file & '错误!')
                                                        Else
                                                                MsgBox(48, "成功", '打开文件' & $file & '成功!')
                                                                FileWrite($out_vcf, FileRead($in_vcf))
                                                                FileClose($in_vcf)
                                                        EndIf

                                                WEnd
                                                FileClose($out_vcf)
                                               
                                                FileClose($search)


文件我自己手工都可以打开和编辑,偏偏这段代码提示错误,打不开文件。找不到原因。请教高人指点。我觉得不是权限问题。

xrbenbeba 发表于 2009-3-8 22:33:42

因为默认的是即使搜索的结果不存在,也会继续的搜索下去.
你没有做搜索开始时候的错误判断,所以会出现问题
多看看帮助文档吧,文档里的例子有写到这个,帮助文档是最好的教材

$search = FileFindFirstFile(@WorkingDir&"\test\*.txt")
If $search = -1 Then
        MsgBox(0, "Error", "No files/directories matched the search pattern")
        Exit
EndIf
$out_vcf = FileOpen(@WorkingDir&'\out.txt', 8 + 1)

                                                While 1
                                                        $file = FileFindNextFile($search)
                                                        If @error Then ExitLoop
                                                        $in_vcf = FileOpen($file, 0)
                                                        If $in_vcf = -1 Then
                                                                MsgBox(48, "错误", '打开文件' & $file & '错误!')
                                                        Else
                                                                MsgBox(48, "成功", '打开文件' & $file & '成功!')
                                                                FileWrite($out_vcf, FileRead($in_vcf))
                                                                FileClose($in_vcf)
                                                        EndIf
                                                WEnd
                                                FileClose($out_vcf)
                                               
                                                FileClose($search)

[ 本帖最后由 xrbenbeba 于 2009-3-8 22:40 编辑 ]
页: [1]
查看完整版本: fileopen打开文件出错