What's the idea behind the name of the AppData folder?

Rom Bernheimer 1 Reputation point
2021-10-09T22:51:32.043+00:00

Hello,

In Windows, you can install programs into Program Files or AppData. It seems both folders serve the same purpose but differ in access level. Why is AppData named that? What sort of attributes should a program possess in order to justify installing it specifically on AppData?

Asking for a friend. ;)

Windows 10
Windows 10
A Microsoft operating system that runs on personal computers and tablets.
10,573 questions
0 comments No comments
{count} votes

4 answers

Sort by: Most helpful
  1. Castorix31 81,461 Reputation points
    2021-10-10T06:36:40.503+00:00

    You can see the definition in MSDN at Environment.SpecialFolder :

    ApplicationData
    The directory that serves as a common repository for application-specific data for the current roaming user. A roaming user works on more than one computer on a network. A roaming user's profile is kept on a server on the network and is loaded onto a system when the user logs on.

    or from the old "Official Guidelines for User Interface Developers and Designers" :

    • Program Files

    To store your application's read-only files, create a subfolder within the Program Files folder.
    Include your application's executable (.exe) files as well as any .dll files, Help files, clip art or
    other fixed library files, and other support files used by your application. You can use the
    Common Files subfolder for any shared components (such as .dll files). For files that you do not
    want the user to access directly, set the hidden file attribute.
    Also consider the layout of files you provide with your application. In addition to the
    recommended structure for your main executable file and its support files, you may want to
    create special folders for documents, templates, conversion tools, or other files that the user
    accesses directly.

    • Documents and Other User-Created Data Files

    Save all user-created document files in the My Documents folder. Use this as the default location
    for your application's Save As dialog box. Save all user-generated images in the My Pictures
    subfolder. Avoid creating your own subfolders in My Documents and My Pictures unless your
    application generates multiple related files for user-created data. In that case, it may be better
    to develop a structure that keeps the associated files together.

    • Application Data

    Create other miscellaneous files that the user doesn't directly access in the Application Data
    folder. For example, include custom dictionaries, mail stores, user history and other caches,
    index files, and log files. If you provide multiple applications, within the Application Data folder
    you can create a folder with your company's name that contains subfolders for each product.
    The system provides three Application Data folders for the following types of files:

    • User Name folder (for example, for Windows 2000, C:\Documents and Settings\user
      name) — Store per-user customization files.
    • Local Settings folder — Store per-user files that do not apply when the user roams, such
      as discardable data or temporary files.
    • All Users folder — Store local application data common to all users, such as log files,
      hidden databases, and index files.
    1 person found this answer helpful.
    0 comments No comments

  2. Limitless Technology 39,336 Reputation points
    2021-10-15T14:47:39.55+00:00

    Hello,

    Thank you for your question and reaching out.

    The location of the folder itself actually answers the question. But for clarity, let me explain anyway. Program Files is for storing the program itself, AppData is to store user specific information related to the program. (And ProgramData is to store not user-specific information related to the program).

    The AppData folder is located in a user's folder, eg: C:\Users\Username\AppData, whereas the program files folder is located in C:\

    One of the benefits of installing to Program Files is that is exactly where the user expects it to go. Usually users go here first to look where the program is installed. The biggest downside is that the user needs administrative privileges, which isn't always required by the program.

    I'd advise against installing to AppData unless you have really good reason to do so. Program Files is where the user will expect it, and the permissions are set up like that as well. AppData has a few flaws, namely that the program is only installed for that one user, and could actually be repeatedly installed because of that. The other thing is AppData roaming follows users on a server network, and so making that take more space could make logging in slower.


    --If the reply is helpful, please Upvote and Accept as answer--

    1 person found this answer helpful.
    0 comments No comments

  3. Sam of Simple Samples 5,516 Reputation points
    2021-10-09T23:06:54.4+00:00

    The important thing is that Program Files (and Program Files (x86)) is for software to be used by all users and AppData is for single-user instances. The folder above AppData is the user, correct? As for the reason it is called AppData, Microsoft is not real good about what names to use for stuff.

    0 comments No comments

  4. Deleted

    This answer has been deleted due to a violation of our Code of Conduct. The answer was manually reported or identified through automated detection before action was taken. Please refer to our Code of Conduct for more information.


    Comments have been turned off. Learn more