Uzasadnione użycie folderu „Dokumenty” systemu Windows w programach

40

Każdy, kto lubi, aby folder Dokumenty zawierał tylko to, co tam umieszcza, wie, że standardowy folder Dokumenty jest całkowicie nieodpowiedni do tego zadania. Wydaje się, że każdy program chce umieścić swoje ustawienia, dane lub coś równie nieistotnego w folderze Dokumenty , mimo że istnieją foldery specjalnie dla tego zadania 1 .

Aby nie brzmiało to pusto, weź mój osobisty folder „Dokumenty” jako przykład. Nie zawsze go używać, w których nigdy, w żadnych okolicznościach, Zapisz cokolwiek w tym folderze siebie. A jednak zawiera 46 folderów i 3 pliki na najwyższym poziomie, co daje w sumie 800 plików w 500 folderach. To 190 MB „dokumentów”, których nie utworzyłem. Oczywiście wszelkie dokumenty natychmiast zgubiłyby się w tym bałaganie.

Moje pytanie brzmi : czy można zrobić wszystko, aby sytuacja na tyle się poprawiła, aby „Dokumenty” znów się przydały, powiedzmy w ciągu najbliższych 5 lat? Czy programiści mogą być w jakiś sposób edukowani na skalę masową, aby nie wykorzystywać ich jako miejsca wysypiska śmieci? Czy system operacyjny mógłby zacząć zgłaszać „fałszywą” lokalizację ukrytą pod AppData za pośrednictwem istniejących interfejsów API, jednocześnie pozwalając Explorer i różnym oknom dialogowym Otwórz / Zapisz wiedzieć, gdzie znajduje się „prawdziwy” folder Dokumenty? A może próby są całkowicie daremne, a nawet niepotrzebne?


1 Dla przypomnienia, oto krótkie podsumowanie różnych standardowych katalogów, które powinny być użyte zamiast „Dokumentów”:

  • RoamingAppDatadla danych i ustawień specyficznych dla użytkownika . To katalog użyć do specyficznych dla użytkownika danych nietymczasowe. Wszystko, co zostanie tu umieszczone, będzie dostępne na każdym komputerze , do którego zaloguje się dany użytkownik w sieci, w której jest to skonfigurowane. Nie umieszczaj tutaj dużych plików, ponieważ spowalniają logowanie / wylogowywanie w takich środowiskach.
  • LocalAppDatadla danych i ustawień specyficznych dla użytkownika i maszyny . Te dane różnią się dla każdego użytkownika i każdej maszyny. W tym miejscu należy również umieszczać bardzo duże dane specyficzne dla użytkownika.
  • ProgramDatadla danych i ustawień specyficznych dla maszyny . Są one takie same bez względu na zalogowanego użytkownika i nie będą wędrować na inne maszyny w sieci.
  • GetTempPathdla wszystkich plików, które można wyczyścić bez utraty danych, gdy nie są używane. Jest to również miejsce na takie rzeczy jak pamięć podręczna , bo jak tymczasowych danych, pamięć podręczna nie muszą być wspierane. Umieść tutaj swoją ogromną pamięć podręczną, a zaoszczędzisz użytkownikowi problemów z kopią zapasową.

„Dokumentów” należy używać zawsze tylko wtedy, gdy użytkownik określi je ręcznie, wprowadzając ścieżkę lub wybierając ją w oknie dialogowym Zapisz. To jedyny czas jest zawsze stosowne zaoszczędzić materiał w „Dokumenty”.

Roman Starkov
źródło
Dyskusja o tym myśli powinny być podjęte w celu meta.PE .
Josh K
„Czy system operacyjny może zacząć zgłaszać„ fałszywą ”lokalizację ukrytą pod AppData za pomocą istniejących interfejsów API, jednocześnie pozwalając Explorer i różnym oknom dialogowym Otwórz / Zapisz wiedzieć, gdzie znajduje się„ prawdziwy ”folder Dokumenty?” Wszystko, co zmniejsza moc użytkowników, jest złe. Przez użytkowników rozumiem użytkowników, którzy wiedzą, jak programować w celu automatyzacji.
alternatywnie
1
Czuję potrzebę wyjaśnienia, że ​​folder Dokumenty na wszystkich moich komputerach jest wolny od śmieci, ponieważ uruchamiam Linux-y. Wiem, że jest to oznaczone jako „Windows”, ale nigdzie w tym gloryfikowanym rant nie wspominałeś o używanym systemie operacyjnym.
sevenseacat
1
Najwyraźniej problem polega na tym, że Microsoft pozwala, aby tak się stało, a nawet obiecuje - spójrz na Visual Studio / SQL Server Management Studio. Interesujące pytanie brzmi - czy jest dobre miejsce, aby w Microsoft mówić o tym problemie?
Chris Nevill,
1
Obecne ustawienia OneDrive jeszcze gorzej. Ponieważ ustawia folder Dokumenty w OneDrive (co jest dobrym pomysłem). Ale nie miałem prawie godziny internetu, dopóki nie zauważyłem, że Xamarin pomyślał, że dobrym pomysłem byłoby wepchnięcie Androida NDK do mojego folderu Dokumentów (OneDrive). Moje pozostałe 3 zsynchronizowane komputery automatycznie pobrały wszystkie pliki. 1,9 GB ...
Matt

Odpowiedzi:

19

Potrzebna byłaby widoczna zachęta. Na przykład, jeśli użytkownicy musieliby wyrazić zgodę na zapisywanie w folderze Dokumenty (podczas instalacji), programiści chcieliby uniknąć uruchamiania tego przerażającego okna dialogowego.

Po uzyskaniu zachęty ludzie naturalnie natkną się na dokumentację, taką jak „Zapisz dane programu specyficzne dla maszyny w ProgramData”, próbując go rozwiązać.

W rzeczywistości wiele problemów można rozwiązać dzięki ładnym ramom uprawnień ...

Craig Gidney
źródło
Brzmi trochę jak piaskownica Apple dla Mac OS X: Możesz zapisać tylko w dowolnej lokalizacji, przechodząc przez okno dialogowe Kontrolowane przez system operacyjny, które pozwala wybrać lokalizację zapisu. Jeśli użytkownik kliknie OK, odblokuje katalog do przyszłego użytku.
Laurent Bourgault-Roy,
4

Moje pytanie brzmi: czy można zrobić wszystko, aby sytuacja na tyle się poprawiła, aby „Dokumenty” znów się przydały, powiedzmy w ciągu najbliższych 5 lat?

Teoretycznie coś można zrobić. Teoretycznie Microsoft może:

  • Wymyśl lepsze miejsce na umieszczenie plików ustawień użytkownika (w tym procesie, wiedząc, że wiele aplikacji ma ważne powody, aby umieszczać ustawienia w plikach).
  • Dodaj to do standardowych wskazówek dla programistów aplikacji Windows. (Zakładam, że takie wytyczne istnieją).
  • Zrób wielką rzecz o aplikacjach zgodności z wytycznymi, np poprzez pewnego rodzaju certyfikacji lub poprzez tworzenie i publikowanie kart wyników zgodności. „Nazywanie i zawstydzanie” może zdziałać cuda

Trzeba powiedzieć, że Apple tradycyjnie był o wiele bardziej proaktywny w tego typu sprawach. I pokazuje to jakość rzeczy, które działają na ich platformach.

Stephen C.
źródło
4
Warto zauważyć, że Microsoft sam jest wielkim przestępcą (a przynajmniej niektóre zespoły Microsoft są dużymi przestępcami).
Peter Taylor
Całkowicie zgadzam się z punktem „wielkiej rzeczy”. Co do lepszego miejsca - myślę, że profil roamingowy nie jest już taki zły, po prostu jest zbyt wielu ludzi, którzy o nim nie wiedzą lub, co gorsza, umieszczają w nim ogromne pliki (2 GB +). Zwłaszcza gry ...
Roman Starkov
2

Myślę, że odpowiadasz na to pytanie, ponieważ sprowadza się ono do edukacji programistów. Nie wiem wystarczająco dużo o interfejsie API systemu Windows i jeśli przechowywanie rzeczy Documentsjest szczególnie łatwe, ale jeśli nie, to aplikacje nie powinny go zanieczyszczać. Myślę, że sprowadza się to do posiadania znanej lokalizacji dla użytkownika, w której mogą znajdować się dane. W przypadku rodzaju danych, o których mówisz, Mac OS X używa tego ~/Libraryfolderu, chociaż niektóre aplikacje wciąż go trzymają Documents. Być może coś podobnego powinno (nie?) Istnieć w systemie Windows.

Osobiście przechowuję Dokumenty w tym samym tytule folderze w katalogu głównym Dropbox, co zapewnia mi dodatkowy poziom pracy, ale oszczędza mi poruszonego problemu.

roguesys
źródło
2

Rozumiem, że chcesz zaangażować się w dyskusję na temat zachęcania programistów do przestania tego robić, ale może stać się jedną z takich rzeczy, jak ikony powiadomień na pasku zadań, których nie można zatrzymać, więc Microsoft po prostu przeciągnął je pod dywan.

Wcześniej pisałem na blogu o folderze Dokumenty, porównując go do wyprowadzki z złej dzielnicy . Jako użytkownik wymyśliłem kilka hacków do samodzielnego czyszczenia. Oznaczę wszystkie nieproszone foldery jako „ukryte”, co spowoduje ich zniknięcie z Eksploratora. Chciałbym utworzyć dowiązania symboliczne dla folderów Visual Studio 2005, 2008, 2010 we wspólnym folderze „Visual Studio” itp.

Ale nawet w przypadku skryptów PowerShell do automatyzacji tego, miałem dość robienia tego na każdej nowej maszynie, z której korzystałem. Na szczęście w Windows 7 jest inna opcja, która działa dla mnie całkiem dobrze.

Ponieważ system Windows 7 zwykle korzysta z biblioteki „Dokumenty”, a nie z folderu Dokumenty. Po prostu usunąłem folder% userprofile% \ dokumenty z tej biblioteki i zamiast tego dodałem folder Dropbox. Teraz otwieraj / zapisuj okna dialogowe domyślnie w tej lokalizacji, a kiedy kliknę Start -> Dokumenty, zabierze mnie do mojego Dropbox.

Ostatecznie chciałbym zobaczyć jakąś podstawową certyfikację dla aplikacji podobnych do wytycznych iOS App Store. Ale nie mogą nawet zmusić producentów sterowników do podpisania swoich sterowników ...

Josh
źródło
1
Innymi słowy, myślisz, że nic nie można zrobić, aby go uratować, ale jest OK, ponieważ krążą lepsze pomysły. +1.
Roman Starkov
1

Myślę, że długoterminową strategią powinno być zaprzestanie przechowywania w plikach innych niż dokumenty. Dane systemowe, zwłaszcza ustawienia, powinny być przechowywane w systemach pamięci masowych, które bardziej przypominają bazę danych niż system plików. Punkty bonusowe, jeśli ta baza danych może być łatwo i automatycznie zsynchronizowana z usługą w Internecie, dzięki czemu masz jeden zestaw ustawień niezależnie od tego, ile komputerów używasz i gdzie.

Niewiele wiem o historii systemów plików, ale wydaje mi się, że zostało to zrealizowane dość wcześnie w tym systemie, a pliki wykonywalne są zasadniczo „rzeczą” niż dokumenty. Tak więc te zostały schowane w specjalnym folderze (wtedy nazywanym katalogiem), C:\DOSa użytkownik w zasadzie kontrolował resztę dysku.

Nikt tak naprawdę nie przewidział, o ile bardziej złożone i niemożliwe do zarządzania systemy staną się przez lata i jaki bałagan to spowoduje. Myślę, że nadszedł czas, aby przemyśleć technologię od podstaw i wykorzystać synergię chmury. Punkty bonusowe, jeśli wykonalne rozwiązanie open source wystartuje, zanim zrobi to firma :)

Timwi
źródło
3
Czy nie ma większego sensu robić coś przeciwnego, tj. Przechowywać tylko rzeczy systemowe jako pliki i mieć dane użytkowników dostępne w bazach danych, zwłaszcza jeśli są one synchronizowane przez usługi sieciowe?
Roman Starkov,
1
Hm, szczegóły z pewnością wymagają dopracowania ... ale prawdziwym punktem, który starałem się zrobić, jest to, że tylko dokumenty w czasie rzeczywistym (tj. Pliki, na których faktycznie pracuje użytkownik, które nie mają nic wspólnego z uruchomieniem systemu) naprawdę pasują w metaforę pliku.
Timwi
Nie jestem też pewien, czy to rozwiązuje problem. Jeśli programy mają dostęp do systemu przechowywania dedykowanego dla dokumentów użytkownika, nadal mogą tam umieścić swoje śmieci. Wymagane jest coś, co powstrzymuje programy przed robieniem tego, albo za pomocą środków technicznych, albo przez zmuszenie programistów do zatrzymania się dobrowolnie.
Roman Starkov
Rejestr był takim systemem i nie wyszedł tak dobrze. Nie sądzę, że podejście appdata, w którym programy przechowują pliki z własnymi ustawieniami, jest takie złe.
Pieter B
1

Nawet jeśli jakiś program nadal przechowuje niektóre dane w Dokumentach , myślę, że większość zamiast tego przechowuje swoje dane w AppData , więc idą już we właściwym kierunku imho, jednak użytkownicy nie mogą wiele zrobić: każdy program jest odpowiedzialny za to, co robi robi.

dzikie piki
źródło
1
Zgadzam się; użytkownicy są bezradni. Mogą to rozwiązać tylko programiści.
Roman Starkov
1

Rozwiązanie:
1. Kliknij prawym przyciskiem folder „Dokumenty” i wybierz zakładkę „lokalizacja”.
2. Zmień lokalizację „Dokumenty” na inne miejsce, w którym wybieram „C: \ Admin \ Configs” (po zakończeniu wszystkie aplikacje piszące w „dokumentach” powinny zostać wysłane do C: \ Admin \ Configs.

Ale to rozwiązuje tylko połowę problemu, następny krok powinien być dość oczywisty.

  1. Utwórz nowy folder w folderze „C: \ User \\ Documentation”

Powinieneś być w stanie dodać ten katalog do bibliotek i usunąć stary, celowo ustawiłem inną nazwę folderu w 'C: \ User \ ** Documentation **', ponieważ chciałem mieć pewność, że nic nie może po prostu twardej ścieżki do tego teczka.

Jeśli folder „dokumenty” pojawi się ponownie w folderze C: \ Użytkownik \ z powodu powyższego faktu, wystarczy kliknąć folder prawym przyciskiem myszy i uczynić go niewidocznym.

Wewnętrzny
źródło
0

Przechowywanie ustawień w pliku tekstowym jest wszechstronnym rozwiązaniem dla wielu platform.

O ile programiści nie stworzą standardowej bazy danych ustawień międzyplatformowych, myślę, że większość z nas będzie nadal używać plików tekstowych zrzucanych do katalogu użytkownika.

Ci z nas, którzy są inteligentni, stworzą różne interfejsy ustawień dla systemów, które pozwalają na wyspecjalizowane silniki przechowywania ustawień (takie jak Rejestr systemu Windows).

Craige
źródło
1
Pamiętaj, że folder „Documents” nie jest katalogiem „user”. Folder „Dokumenty” jest podkatalogiem katalogu użytkownika, którego intencją miało być miejsce, w którym użytkownik zapisał własne dokumenty. Problem polega na tym, że programy postanowiły również umieścić swoje rzeczy w folderze „Dokumenty”, mimo że istnieją lepsze (i jako takie udokumentowane) miejsca na ustawienia programów.
Dean Harding
1
To dobry przykład jednej ścieżki do bałaganu Dokumentów. Ludzie przenoszą program, nie wiedząc wiele o systemie Windows, i zrzucają swoje rzeczy do pierwszego katalogu, który przychodzi na myśl. Prawdopodobnie o wiele łatwiej jest znaleźć „Dokumenty” niż „AppData”, zwłaszcza że ta ostatnia obejmuje decyzję o umieszczeniu jej w profilu mobilnym lub lokalnym - nieznane warunki dla każdego, kto nie jest głęboko zaangażowany w tworzenie systemu Windows.
Roman Starkov
Zgadzam się, i znowu - prawdziwym rozwiązaniem jest posiadanie standardowego silnika przechowywania ustawień między platformami.
Craige
1
Nie zdarzy się. Pierwotne pytanie dotyczy ponownej edukacji wszystkich programistów Windows, a odpowiedzią jest ponowna edukacja każdego programisty. Nie zamierzasz też zachęcać programistów Uniksa / Linuksa do zakupu bazy danych ustawień, ponieważ istnieją bardzo dobre powody, aby pozostawić je jako pliki tekstowe i napotkasz dodatkowy opór przed robieniem rzeczy po Microsoft.
David Thornley,