Can someone explain SpecialFolder confusion

Hello guys,

so as mentioned in the title , can someone explain that SpecialFolder part in regards to the Applications

For example

Windows :

I have Applications → \Program Files\ or \Program Files (x86)\ , I assume that the location is set by XOJO based on the binary version, 32 Bit for x86 or 64 bit for normal . here let’s say that is logical

What is the use of SharedApplications ? as again I have \Program Files\Common Files\ or \Program Files (x86)\Common Files.

Based on my understanding you use Applications on a single user pc and you use SharedApplications in the case where you can have multiple users on the same pc, is that correct ?

If the last part is correct then I assume that this spares the time and space to install one application for each user in it’s own space and we install it as shared and it will be available for each user that exists or that will be created.

Now, here I have few particular cases.

  1. I have the app global settings which I assume I save it in SharedApplicationData or SharedPreferences and it has to be something that could be opened by multiple users .
  2. I have per user data that needs to be stored per account based settings so I assume that, this part of data I need to save it in ApplicationData and it will be locked for each individual account.

Can someone confirm that or clarify please .

In my case I have pcs that are used by multiple users with individual accounts and I need to know what is the best way to install and configure those apps.

Thank you .

If you run this:

MessageBox "Applications: "+SpecialFolder.Applications.NativePath + EndOfLine + _
"SharedApplications: "+SpecialFolder.SharedApplications.NativePath


As a 32bit compiled app (Windows, Architecture):


As a 64bit app:



Imagine you create a DLL that multiple apps can use, there is a good place to share it. Like:

C:\Program Files\Common Files\My Company\My special content x\amazinglib.dll

No. The common files folder is the recommended default location for files and folders that are shared by applications.

Keep in mind that SharedApplications is not for user data. It’s for pieces of your application, as Rick points out. Dlls, scripts, icons and the like.

SharedApplicationData is for data that all users on that machine can access. ApplicationData is for data that is unique to each user.

1 Like