我正在尝试从数千个 jpeg 文件中提取压缩属性。
如何使用 Excel VBA 或 PowerShell(或其他方法)执行此操作?
一些用户没有使用正确的技术将 tiff 或 png 文件转换为 jpeg。他们只是直接在资源管理器中编辑文件扩展名,而不是使用 Photoshop 等应用程序来正确更改文件格式。这会给下游流程带来麻烦。
检查了几个文件后,有问题的文件在该字段中具有“未压缩”...我想隔离这些文件,以便可以更正它们。
请注意,这个答案没有提供我需要的解决方案。压缩属性不在该方法输出的 308 个属性列表中。
您可以通过API获取它
GetFileAttributes
。
Option Explicit
#If VBA7 Then
Private Declare PtrSafe Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
#Else
Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
#End If
Private Const FILE_ATTRIBUTE_COMPRESSED As Long = &H800
Sub GetCompressionStatus()
Dim filePath As String
Dim fileAttributes As Long
filePath = "d:\temp\my.jpg"
fileAttributes = GetFileAttributes(filePath)
If (fileAttributes And FILE_ATTRIBUTE_COMPRESSED) = FILE_ATTRIBUTE_COMPRESSED Then
MsgBox "COMPRESSED"
Else
MsgBox "NO COMPRESSED"
End If
End Sub