michelemarcon michelemarcon - 1 month ago 11
Java Question

How to get a Windows virtual folder location from Java?

I'd like to retrieve the location of a Windows virtual folder from Java. JNA provides some support but the documentation don't explain how to directly use it.

Answer

Having a look into the JNA source reveals the javadoc of Shell32Util.getKnownFolderPath(Guid.GUID)

Retrieves the full path of a known folder identified by the folder's KNOWNFOLDERID.

The local application data directory can be retrieved as

String localAppDataDir = Shell32Util.getKnownFolderPath(
    KnownFolders.FOLDERID_LocalAppData);
System.out.println(localAppDataDir);

output will be something like

C:\Users\JohnDoe\AppData\Local

where JohnDoe is the name of the current user.