发表回复 
【AHK教程FSO】【第一篇 File】【原作者xue_zhe(king)】
2016-01-24, 20 : 00 (这个帖子最后修改于: 2017-12-03 23 : 21 by xue_zhe.)
【AHK教程FSO】【第一篇 File】【原作者xue_zhe(king)】
File

--------------------------------------------------------------------------------

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
必选项。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) ;写入三个空白行(相当于在文本编辑器中按三次回车)



--------------------------------------------------------------------------------
[/quote][/code]
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 2用户表示感谢xue_zhe
2016-01-24, 20 : 24
RE: 【AHK教程FSO】【第一篇 File】【幸苦原创】【原作者xuezhe(king)】
谢谢分享...可惜格式混一块了...
使用COM,我觉得重点是引用对象的原手册,及对应的AHK语法...话说,如果能定个模式,直接转换常见代码、文档(如VB的)就好了...

One for all, but man for himself

帮推广:AHK知乎专栏
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-01-24, 20 : 54
RE: 【AHK教程FSO】【第一篇 File】【幸苦原创】【原作者xuezhe(king)】
你可以写个啊,要精通两三种语言啊。我心有而力不足啊,很可惜,但你可以试试。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-01-25, 20 : 51
RE: 【AHK教程FSO】【第一篇 File】【幸苦原创】【原作者xue_zhe(king)】
汗..我也不够懂...
慢慢学习,从简单的来吧..

One for all, but man for himself

帮推广:AHK知乎专栏
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2017-08-07, 09 : 28
RE: 【AHK教程FSO】【第一篇 File】【幸苦原创】【原作者xue_zhe(king)】
还是可以的。

梦幻软件天堂
人生R棋随1出招借力打力多而合1扬C避D奇L断金
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合