1

enter image description here

This is pretty infuriating to me. There isn't a consistency as to where things are stored. Isn't all that stuff (like .conda and .cache and .viminfo) supposed to be in AppData\Roaming? Almost nothing on that list (save for the default folders like Desktop and Videos and AppData) should really be there. Why is it still there, and is there a way to prevent programs from doing this?

gargoylebident
  • 241
  • 4
  • 14
  • [This](https://stackoverflow.com/questions/48304305/anaconda-python-change-anaconda-prompt-user-path#:~:text=Go%20to%20Start%20and%20search%20for%20%22Anaconda%20Prompt%22,in%20the%20%22Start%20in%22%20box.%20share%7Cimprove%20this%20answer.) applies to most of those folders – Ramhound Sep 16 '20 at 23:01
  • 1
    @gargoylebident Your question "Isn't all that stuff (like .conda and .cache and .viminfo) supposed to be in AppData\Roaming?" is actually misguided. All Anaconda and conda virtual environment (env) folders and content should be under "C:\ProgramData\Anaconda3\envs" parent directory, especially when installed as a developer with Administrator privileges. MS-Windows takes heavy-handed liberties without warning and puts things into AppData/Roaming. Super annoying, breaks things. Save a lot of time and annoyance and always put conda environments under C:\ProgramData\Anaconda3\envs – Rich Lysakowski PhD Jan 30 '23 at 03:45

2 Answers2

2

You'll need to talk to the program authors. They are the ones who decide where to save files be default in that location. Most of those are due to programs that are cross-platform, as *nix systems use . at the start of a file/folder name to indicate a hidden attribute.

More info in my answer

Canadian Luke
  • 24,199
  • 39
  • 117
  • 171
  • Other than asking the authors (which something tells me won't be very fruitful), is there any other way to prevent this? Like prohibiting things from being written directly into that specific folder (but not its children) by other programs? – gargoylebident Sep 16 '20 at 22:46
  • @stackexchange_account1111 - It's possible to configure the location of your Anaconda, Ansel, Pylint, Matplotlib, Android development environment. What research have you done? – Ramhound Sep 16 '20 at 22:48
  • @stackexchange_account1111 Not without breaking other apps. The apps run as you (most likely), so they will have the same access you have - if you restrict that folder, stuff in Windows starts breaking, as it expects certain permissions in certain locations. – Canadian Luke Sep 16 '20 at 22:52
  • @Ramhound I didn't expect that this is only possible on a per-program basis, so none (other than searching SU for things like "user folder settings windows" - unsuccessfully). That sounds pretty tedious. It also means if the dev doesn't give that option to configure you're SOL. It'd be nice to at least be able to reliably see which programs created which folders/files. I've never even used Ansel (whatever that is), Pylint or Matplotlib. – gargoylebident Sep 16 '20 at 23:01
  • Most of those folders belong to Python developmental environments. There is absolutely no way those exist without being created by something you installed. They are created in that directory for reasons surrounding permissions by the way. – Ramhound Sep 16 '20 at 23:06
  • For sure, and that's my point. Anything a program installs should be either in that program's folder or that program's config folder (which should reside in AppData). Instead, it just throws it into the user folder, and the user is left guessing what spawned it. – gargoylebident Sep 16 '20 at 23:10
  • @stackexchange_account1111 if you want that then contribute to those projects yourself. On \*nix apps generally store user configs directly in the home folder (I don't like that either) and no one really bothers updating the part to get the specific folder on Windows – phuclv Sep 17 '20 at 01:39
-1

There is almost no Windows' programs in your screenshot.

Why do you think non Windows' programs would follow Windows' rules.

Programming in Windows is a skill.

There are multiple generations of requirements as to where to store files etc. I program to Windows 2000 standards.

User interface guidelines are also multiple generations. Again I program to IBM's Common User Interface which is the basis of 16 bit and Win 9.x user interface standards (like notepad).

Todays practise is to be mobile app like for consumer programs.

So you can program cross platform and be mediocre or specialise in a platform and write great apps or traditional applications.

See https://docs.microsoft.com/en-us/previous-versions/ms954115(v=msdn.10)

  • 3
    While you are correct the majority of those folders, belong to a single application (and multiple Python environments), your answer does not really answer the author's question. – Ramhound Sep 16 '20 at 22:39
  • 1
    All the programs in my screenshot are Windows programs. Otherwise they wouldn't run on Windows. – gargoylebident Sep 16 '20 at 22:42
  • 2
    to be precise those apps are originally written for POSIX and is only ported to Windows later – phuclv Sep 17 '20 at 01:39
  • 1
    Which.. makes them Windows programs. A program ported to some OS is that OS's program. – gargoylebident Feb 03 '21 at 06:17