我正在尝试读取文件,这些文件有时由用户在 Excel 应用程序中打开,但我无法关闭它们。 我尝试使用 ADO Stream 对象,它给我错误“文件无法打开”。当我关闭文件时,它工作正常。
Set oTxtStream = CreateObject("ADODB.Stream")
oTxtStream.CharSet = "utf-8"
oTxtStream.Open
Call oTxtStream.LoadFromFile(sMdmTestMetadataResults)
我发现唯一有效的方法是来自 FileSystemObject 的 OpenTextFile() 。但当我研究它时,它用 utf-16 读取,但没有 utf-8。
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\LOCAL\Jonas\resources\xls\MdmTestMetadata.csv", ForReading)
content = file.ReadAll
有没有办法从打开的文本文件中获取utf-8格式的文件内容?
尝试了描述中的方法描述
ADODB.Stream 需要对文件进行独占访问。您可以尝试先使用
fso.CopyFile
将打开的文件复制到临时文件。 CopyFile 不需要对文件进行独占访问。然后可以使用 ADODB.Stream 读取该临时文件。但是,如果复制打开的文件,则存在数据完整性受到损害的风险。