FileScriptingObject:File.DateLastModified函数未按预期工作

时间:2013-10-22 16:20:17

标签: .net vb.net vba

我正在尝试使用VBA创建Excel报表,以显示从输入文件中读取的所有文件路径名称的“上次修改日期”属性值。这就是我获得LastModified日期的方式:

Set fso = CreateObject("Scripting.FileSystemObject")
Set currentFile = fso.GetFile(inputFile)
Sheet.Cells(r, 2).Value = currentFile.DateLastModified '<<<Incorrect value

为每个读取的文件显示的值是每种情况下的当前系统时间。 Windows资源管理器显示正确的上次修改时间。当我调试时,我发现DateLastModified属性实际上与Excel报告显示的值相同。

为什么DateLastModified函数似乎不起作用?

不确定这是否相关,但我的电脑上确实有msvbvm60.dll VB运行时。这可能是一个管制问题吗?我无法从VB.NET项目中设置对scrrun.dll的引用。我按照说明here:从scrrun.dll创建一个新库。看起来它创建了一个具有不同名称的库dll,Scripting.dll,我能够引用它。不确定这些是否相关。

2 个答案:

答案 0 :(得分:1)

创建文件时DateLastModified属性为Null。某些进程会在文件关闭时更新该值,但其中许多进程不会。

答案 1 :(得分:0)

道歉。这是一个愚蠢的编码错误。我正在检查输入文件上的修改日期,而不是从文件中读取的路径。杜!

如果不值得删除,这取决于社区。