[编程][文件][FSO]文件操作

文件操作
fso := ComObjCreate("Scripting.FileSystemObject")

文件是否存在

fso.FileExists("D:\test.txt") 返回为-1,则存在;返回为0,则不存在
if fso.FileExists("D:\test.txt")
MsgBox 文件存在


创建文件

CreateTextFile()
创建指定的文件名并返回一个文件对象,可以使用这个对象对文件进行读写。
object.CreateTextFile(filename[, overwrite[, unicode]])
object
FileSystemObject 或 Folder 对象的名称。
filename
指明所要创建文件的字符串表达式。
overwrite
可选。Boolean 值,指明能否覆盖已有文件。如果文件可以覆盖,则值为 true ,否则为 false。如果忽略,则已有文件不能被覆盖。
unicode 可选。
Boolean 值,指明文件是否以 Unicode 或 ASCII 文件方式创建。如果文件作为 Unicode 文件创建,则值为 true ,如果作为 ASCII 文件创建,则为 false。如果忽略,则假定为 ASCII 文件

fso.CreateTextFile("D:\test.txt",True) ;创建一个文件test.txt(若已经存在则覆盖)

 


复制文件
copy()
object.CopyFile ( source, destination[, overwrite] )
必选项。object 应为 FileSystemObject的名称。
source
必选项。指定文件字符串,可以包含通配字符来复制一个或多个文件。
destination
必选项。目的字符串,文件将从 source 复制到这里。不允许通配字符。
overwrite
可选项。Boolean 值,指明是否覆盖已有文件。如果为 true ,则文件将被覆盖;如果为 false ,则文件不会被覆盖。默认的是 true。注意,如果 destination 设置了只读属性,那么无论 overwrite 的值是什么, CopyFile 都会失败。

说明
通配字符只能用在 source 参数中最后的路径成分中。

 

fso.CopyFile("D:\text.txt","D:\aa.txt" )

 


移动文件
MoveFile()
从一个位置向另一个位置移动一个或多个文件。
object.MoveFile ( source, destination);
object
必选项。应为 FileSystemObject 的名称。
source
必选项。所要移动的文件的路径。source 参数的字符串只能在路径的最后成分中包含通配字符。
destination
必选项。文件要移到的路径。destination 参数不能包含通配字符。
说明
如果 source 包含了通配字符,或者 destination 以路径分隔符 (\) 结束,那么将假定 destination 指定了一个已有的文件夹,匹配的文件将移入其中。否则,将假定 destination 为需要创建的目的文件名。无论哪种情况,如果移动的是单个文件,将有三种可能:
如果 destination 不存在,那么那么文件将被移动。这是普通情况。
如果 destination 是已经存在了的文件,那么将出错。
如果 destination 是目录,那么也将出错。
如果 source 中使用的通配字符无法匹配任何文件,那么也将出错。MoveFile 方法在遇到第一个错误时终止。出错后不会试图回滚任何出错前所做的修改。
注意 只有在操作系统支持时,才能通过这种方法在卷之间移动文件。

 

fso.MoveFile("D:\test.txt","C:\test.txt" ) ;从D:\ 移动到C:\

 


重命名文件
MoveFile()

 

fso.MoveFile("D:\test.txt","D:\test--.txt" ) ;从文件名“test”修改为"test--"

 


删除文件
object.DeleteFile ( filespec[, force] );
object
必选项。应为 FileSystemObject 的名称。
filespec
必选项。要删除的文件的名称。filespec 可以在最后的路径成分中包含通配字符。
force
可选项。Boolean 值,如果要删除设置了只读属性的文件,则为 true ;如果不删除则为 false (默认)。
说明
如果找不到匹配的文件则出错。DeleteFile 方法在遇到第一个错误时终止。出错后不试图回滚或撤消出错前做的修改。

 

fso.DeleteFile("D:\text.txt")
删除文件到回收站

 

 

 

 


读取文件
OpenTextFile ()
打开指定的文件并返回一个 文档 对象,可以通过这个对象对文件进行读、写或追加。
object.OpenTextFile(filename[, iomode[, create[, format]]])
object
必选项。object 应为 FileSystemObject 的名称。
filename
必选项。指明要打开文件的字符串表达式。
iomode
可选项。可以是三个常数之一:ForReading 、 ForWriting 或 ForAppending 。
create
可选项。Boolean 值,指明当指定的 filename 不存在时是否创建新文件。如果创建新文件则值为 True ,如果不创建则为 False 。如果忽略,则不创建新文件。
format
可选项。使用format 值中的一个来指明打开文件的格式。如果忽略,那么文件将以 ASCII 格式打开。
设置
iomode 参数可以是下列设置中的任一种:
常数 值 描述
ForReading 1 以只读方式打开文件。不能写这个文件。
ForWriting 2 以写方式打开文件
ForAppending 8 打开文件并从文件末尾开始写。

format 参数可以是下列设置中的任一种:
值 描述
TristateTrue 以 Unicode 格式打开文件。
TristateFalse 以 ASCII 格式打开文件。
TristateUseDefault 使用系统默认值打开文件。

Skip(characters)
在读取文件时要跳过的字符个数characters。
SkipLine()
在读取文件时跳过下一行。
Read(characters)
读取指定数量characters的字符,并返回由此得到的字符串。
ReadLine()
从文件中读取一整行(一直到换行符,但不包括换行符),并返回由此得到的字符串。
ReadAll()
读取文件的全部内容并返回由此得到的字符串。对大文件而言,使用 ReadAll 方法将会耗费内存资源。可以使用其他技术来输入一个文件,如逐行读取文件。

 

file := fso.OpenTextFile("D:\text.txt", 1, false) ;第二个参数 1 表示只读打开,第三个参数表示目标文件不存在时是否创建 
file.Skip(3) ;将当前位置向后移三个字符 
file.SkipLine() ;将当前位置移动到下一行的第一个字符 
file.Read(3) ;从当前位置向后读取三个字符,并将当前位置向后移三个字符 
file.ReadLine() ;从当前位置向后读取直到遇到换行符(不读取换行符),并将当前位置移动到下一行的第一个字符
file.ReadAll() ;从当前位置向后读取,直到文件结束,并将当前位置移动到文件的最后

 

写入文件

 

write(string)
向文件写入字符串string
WriteLine([string])
向文件中写入给定的字符串和一个换行符。如果忽略该参数string,则向该文件写入一个换行符。
WriteBlankLines(lines)
将指定数量的换行符写入到文件。lines:要写入该文件的换行符的个数

 

file:=fso.OpenTextFile("D:\test.txt", 2, true) ;第二个参数 2 表示重写,如果是 8 表示追加;第三个参数表示目标文件不存在时是否创建 
file.Write("test01") ;写入内容
file.WriteLine("test02") ;写入内容并换行
file.WriteBlankLines(3) ;写入三个空白行(相当于在文本编辑器中按三次回车)

修改文件的指定内容(支持正则表达式)

 

FilePath:="D:\test.txt" ;test.txt包含内"qwe_123"

FileContentReplace(FilePath,"(_)\d+","$1test") ;返回qwe_test

FileContentReplace(FilePath,RegEx,Replacement)
{
newstr:= RegExReplace(FileRead(FilePath),RegEx,Replacement)
FileDelete(FilePath)
FileAppend(newstr,FilePath)
}

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA捐赠
共{{data.count}}人
人已捐赠
其他

[编程][网络]等待联网

2017-10-27 16:08:00

其他

连点器,26个字母全部都连点怎么样。真不用写500行以上

2017-10-28 14:24:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索