VBA中怎么读取文件的属性,如修改时间,类型,大小之类的

VBA中怎么读取文件的属性,如修改时间,类型,大小之类的,第1张

GetAttr函数 返回文件属性

返回一个 Integer,此为一个文件、目录、或文件夹的属性

语法

GetAttr(pathname)

必要的 pathname 参数是用来指定一个文件名的字符串表达式。pathname 可以包含目录或文件夹、以及驱动器。

返回值

由 GetAttr 返回的值,是下面这些属性值的总和:

常数 值 描述

vbNormal 0 常规

vbReadOnly 1 只读

vbHidden 2 隐藏

vbSystem 4 系统文件

vbDirectory 16 目录或文件夹

vbArchive 32 上次备份以后,文件已经改变

vbalias 64 指定的文件名是别名。

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

说明

若要判断是否设置了某个属性,在 GetAttr 函数与想要得知的属性值之间使用 And 运算符与逐位比较。如果所得的结果不为零,则表示设置了这个属性值。例如,在下面的 And 表达式中,如果档案 (Archive) 属性没有设置,则返回值为零:

Result = GetAttr(FName) And vbArchive

如果文件的档案属性已设置,则返回非零的数值。

FileDateTime 返回文件修改时间

返回一个 Variant (Date),此为一个文件被创建或最后修改后的日期和时间。

语法

FileDateTime(pathname)

必要的 pathname 参数是用来指定一个文件名的字符串表达式。pathname 可以包含目录或文件夹、以及驱动器。

FileLen 返回文件长度

返回一个 Long,代表一个文件的长度,单位是字节。

语法

FileLen(pathname)

必要的 pathname 参数是用来指定一个文件名的字符串表达式。pathname 可以包含目录或文件夹、以及驱动器。

说明

当调用 FileLen 函数时,如果所指定的文件已经打开,则返回的值是这个文件在打开前的大小。

注意 若要取得一个打开文件的长度大小,使用 LOF 函数。

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 不能连续地返回子目录。

提示 由于文件名并不会以特别的次序来返回,所以可以将文件名存储在一个数组中,然后再对这个数组排序。

1、首先使用excel软件打开相关的表格,进入表格界面。

2、然后在表格页面中,选择需要转化成日期的区域,这个的目的就是选择相关的区域。

3、然后找到开始菜单栏目,这个菜单栏目很容易找到。

4、在开始菜单里面可以看到一个数字页面,接着点击右下角的角标,然后进入编辑框。

5、在相关的编辑框里面,可以看到有一个分类按钮,里面有好多种形式。

6、然后点击日期这个按钮,点击确认按钮,就完成了。

第一次将文件名及文件修改时间提取出来,然后感觉文件修改时间进行排序,达到楼主要求打开文件的顺序。

比如文件1XLS

修改时间7月2日是排位第一的,就直接打开1xls文件即可了。

Sub GetFileTime()

    Dim i As Integer

    i = 1

    Set fso = CreateObject("ScriptingFileSystemObject")

    Set fs = fsogetfolder("d:\")Files

    With Sheet1

        Cells(1, 1) = "序号": Cells(1, 2) = "创建时间": Cells(1, 3) = "最后修改时间": Cells(1, 4) = "最后访问时间"

        For Each f In fs

            i = i + 1

            Cells(i, 1) = fName: Cells(i, 2) = fdatecreated: Cells(i, 3) = fDateLastModified: Cells(i, 4) = fDateLastAccessed

        Next

    End With

End Sub

以上即是VBA代码,运行后自动将D盘根目录下的文件名称和相关时间属性填写在Sheet1中,见下图效果:

以上就是关于VBA中怎么读取文件的属性,如修改时间,类型,大小之类的全部的内容,包括:VBA中怎么读取文件的属性,如修改时间,类型,大小之类的、如何通过vba把时间格式的时间转换成特定格式的文本、如何利用vba代码提取文件修改日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9691537.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存