The Windows shell has several hundred file properties that each have an index and a name. If one knows the index of a property, its value can be accessed for a specific file using the following code in VBA:
Set oShell = CreateObject("Shell.Application")
Set oFolder = oShell.Namespace((sPath)) ' The double parens are not a typo. They are necessary for unknown reason.
vPropertyValue = oFolder.GetDetailsOf(oFolder.ParseName(sFilename), nPropertyIndex)
But what are these properties that are available for easy inspection? Microsoft doesn't seem to want us to know because in every major version of Windows (i.e., XT, 7, 11, etc.), the list of properties and their indices change. There's an old document online that gives the indices and names for five versions of Windows from 2000 to 8. For Windows 11, I had to dig them out myself by running a little procedure with code provided in an old SO answer:
Function sFileProp_Shell_Get(Optional nCode As Integer = -1)
' Get the value of a shell file property, or a list of all of them.
' Adapted from "https://stackoverflow.com/questions/1674134/detecting-the-version-and-company-name-of-an-exe-using-jscript/2067780#2067780"
Dim oShell As Object, oFolder As Object, nCount As Integer, sRetVal As String
Set oShell = CreateObject("Shell.Application")
Set oFolder = oShell.Namespace("C:")
sRetVal = ""
If (nCode <> -1) Then
sRetVal = oFolder.GetDetailsOf(Null, nCode)
Else
For nCount = 0 To 500
sRetVal = sRetVal + IIf(nCount = 0, "", "||") & (nCount & ": " & oFolder.GetDetailsOf(Null, nCount))
Next
End If
sFileProp_Shell_Get = sRetVal
End Function ' sFileProp_Shell_Get()
The purpose of this question is to provide the answer with the result of running that procedure with no argument.
Running the procedure indicated in the question on indices ranging from zero to 500 yielded names for 310 properties with indices ranging from zero to 322. Based on that, the file properties in the Windows 11 shell are given in the table below.
Don't get too excited about finding volumes of information hidden in your files. On inspecting some files, the vast majority of the property values have been found to be empty. But still, I did find some information that I didn't know was available.
There is more information that is not available here:
Not all these data are stored in the files themselves, and some of them are not actually properties of the files. There are four possible sources for the values reported for these properties:
Title,Subject,Comments, andCopyright.Name,Date modified,Attributes, andFile location.SizeandWidth.Computername,Total sizeof disk storage, andSpace free.Something strange to report: The property names in the table were obtained from running the procedure in the question on Feb. 13, 2024. But when I ran it again on Feb. 27, I got 308 names, not 310. All the 308 are the same as before, but there are now no names reported for indices 321 and 322. If people are reading this, it would be interesting if you run the procedure and say in the comments if you get the same results as in the table, or any differences.
More information: On Feb. 28, I checked the column selector for File Explorer (right-click in column header, then click on "More"; dialog box titled "Choose Details"). I collected all the column names listed (by scrolling down 20 times, saving each display image, and OCRing them all). The result: 308 property names with 1:1 correspondence with the 308 shell properties indexed from 0 to 320, including those that appear in duplicate (
Masters keywords, 35 and 36) or triplicate (Status, 148, 149, and 304).And now -- drum roll -- the properties: