Legitime Verwendung des Windows-Ordners "Documents" in Programmen

40

Jeder, der möchte, dass sein Ordner "Dokumente" nur Dinge enthält, die er dort ablegt, weiß, dass der Standardordner "Dokumente" für diese Aufgabe völlig ungeeignet ist. Jedes Programm scheint seine Einstellungen, Daten oder Ähnliches in den Ordner " Dokumente" kopieren zu wollen, obwohl es Ordner speziell für diesen Job gibt 1 .

Damit dies nicht leer klingt, nehmen Sie meinen persönlichen Ordner "Dokumente" als Beispiel. Ich glaube nicht , jemals es verwenden, dass ich niemals, unter keinen Umständen, außer etwas in diesen Ordner selbst. Und dennoch enthält es 46 Ordner und 3 Dateien auf oberster Ebene, was insgesamt 800 Dateien in 500 Ordnern entspricht. Das sind 190 MB "Dokumente", die ich nicht erstellt habe. Offensichtlich würden alle tatsächlichen Dokumente sofort in diesem Durcheinander verloren gehen.

Meine Frage ist : Kann irgendetwas getan werden, um die Situation so weit zu verbessern, dass "Dokumente" wieder nützlich werden, etwa in den nächsten 5 Jahren? Können Programmierer auf irgendeine Weise gebildet sein, es nicht als Müllhalde zu benutzen? Könnte das Betriebssystem anfangen, einen unter AppData verborgenen "falschen" Speicherort über die vorhandenen APIs zu melden, während nur der Explorer und die verschiedenen Dialogfelder zum Öffnen / Speichern wissen, wo sich der "echte" Ordner "Dokumente" befindet? Oder sind irgendwelche Versuche völlig vergeblich oder sogar unnötig?


1 Im Folgenden finden Sie eine kurze Zusammenfassung der verschiedenen Standardverzeichnisse, die anstelle von "Dokumente" verwendet werden sollten:

  • RoamingAppDatafür benutzerspezifische Daten und Einstellungen. Dies ist das Verzeichnis, das für benutzerspezifische nicht temporäre Daten verwendet werden soll. Alles, was hier abgelegt wird, ist auf jedem Computer verfügbar, auf dem sich ein bestimmter Benutzer in Netzwerken anmeldet, in denen dies konfiguriert ist. Platzieren Sie hier jedoch keine großen Dateien, da dies die An- und Abmeldung in solchen Umgebungen verlangsamt.
  • LocalAppDatafür benutzer- und maschinenspezifische Daten und Einstellungen. Diese Daten sind für jeden Benutzer und jede Maschine unterschiedlich. Hier sollten auch sehr große benutzerspezifische Daten abgelegt werden.
  • ProgramDatafür maschinenspezifische Daten und Einstellungen. Diese sind unabhängig davon, welcher Benutzer angemeldet ist, gleich und werden nicht auf andere Computer in einem Netzwerk übertragen.
  • GetTempPathFür alle Dateien, die ohne Datenverlust gelöscht werden können, wenn sie nicht verwendet werden. Dies ist auch der Ort für Dinge wie Caches , da ein Cache wie temporäre Daten nicht gesichert werden muss. Platzieren Sie Ihren riesigen Cache hier und Sie sparen Ihrem Benutzer Backup-Probleme.

„Documents“ selbst sollte nur immer verwendet werden , wenn der Benutzer es manuell spezifiziert durch einen Pfad Eingabe oder in einem Speichern - Dialog auszuwählen. Dies ist das einzige Mal, dass es jemals angebracht ist, Dinge in "Dokumente" zu speichern.

Roman Starkov
quelle
Die Diskussion über diesen Gedanken sollte zu meta.PE geführt werden .
Josh K
"Könnte das Betriebssystem beginnen, einen unter AppData verborgenen" falschen "Speicherort über die vorhandenen APIs zu melden, während nur der Explorer und die verschiedenen Dialogfelder zum Öffnen / Speichern wissen, wo sich der" echte "Ordner" Dokumente "befindet?" Alles, was die Leistung der Benutzer verringert, ist schlecht. Und mit Benutzern meine ich Benutzer, die wissen, wie man für die Automatisierung programmiert.
Alternative
1
Ich habe das Bedürfnis zu klären, dass der Ordner "Documents" auf allen meinen Computern frei von Junk ist, da ich Linux-Boxen verwende. Ich weiß, dass dies mit "Windows" gekennzeichnet ist, aber nirgendwo in dieser verherrlichten Rede haben Sie erwähnt, welches Betriebssystem Sie verwenden.
Sevenseacat
1
Hier liegt eindeutig das Problem darin, dass Microsoft dies zulässt und es sogar verspricht. Schauen Sie sich Visual Studio / SQL Server Management Studio an. Eine interessante Frage ist: Gibt es einen guten Grund, sich über dieses Problem bei Microsoft zu beschweren?
Chris Nevill
1
Die aktuellen OneDrive-Einstellungen machen dies noch schlimmer. Denn es legt den Ordner "Dokumente" in OneDrive fest (was eigentlich eine gute Idee ist). Aber ich hatte gerade 1 Stunde lang fast kein Internet, bis ich bemerkte, dass Xamarin dachte, es wäre eine gute Idee, Android NDK in meinen Ordner (OneDrive) Documents zu verschieben. Meine anderen 3 synchronisierten Computer haben automatisch alle Dateien heruntergeladen. 1,9 GB ...
Matt

Antworten:

19

Es müsste einen sichtbaren Anreiz geben. Wenn Benutzer beispielsweise die Berechtigung zum Speichern im Ordner "Dokumente" (bei der Installation) angeben müssten, möchten Programmierer das Auslösen dieses beängstigenden Dialogfelds vermeiden.

Sobald Sie den Anreiz haben, werden die Leute natürlich auf Dokumentation wie "Maschinenspezifische Programmdaten in ProgramData speichern" stoßen, während sie versuchen, sie zu lösen.

Tatsächlich könnten viele Probleme durch ein nettes Berechtigungs-Framework gelöst werden ...

Craig Gidney
quelle
Klingt ein bisschen wie die Apple Sandbox für Mac OS X: Sie können nur an einem beliebigen Speicherort speichern, indem Sie ein OS-gesteuertes Dialogfeld aufrufen, in dem Sie den Speicherort auswählen können. Wenn der Benutzer auf OK klickt, wird das Verzeichnis für die zukünftige Verwendung entsperrt.
Laurent Bourgault-Roy
4

Meine Frage ist: Kann irgendetwas getan werden, um die Situation so weit zu verbessern, dass "Dokumente" in den nächsten 5 Jahren wieder nützlich werden?

Theoretisch könnte etwas getan werden. Theoretisch könnte Microsoft:

  • Überlegen Sie sich einen besseren Ort zum Speichern von Benutzereinstellungsdateien (wobei zu berücksichtigen ist, dass viele Anwendungen berechtigte Gründe haben, Einstellungen in Dateien zu speichern).
  • Fügen Sie dies zu den Standardrichtlinien für Windows-Anwendungsentwickler hinzu. (Ich gehe davon aus, dass solche Richtlinien existieren.)
  • Machen Sie eine große Sache über die Konformität von Anwendungen mit den Richtlinien, z. B. durch eine Art Zertifizierung oder durch die Erstellung und Veröffentlichung von Konformitäts-Scorecards. "Benennen und Schämen" könnte Wunder wirken ...

Man muss sagen, dass Apple mit solchen Dingen traditionell viel proaktiver umgegangen ist. Und es zeigt sich in der Qualität des Materials, das auf ihren Plattformen ausgeführt wird.

Stephen C
quelle
4
Es ist erwähnenswert, dass Microsoft selbst ein großer Straftäter ist (oder zumindest einige Microsoft-Teams große Straftäter sind).
Peter Taylor
Stimme voll und ganz dem "großen Ding" zu. Was einen besseren Ort angeht - ich denke, das Roaming-Profil ist nicht schlecht, es gibt nur zu viele Leute, die nichts davon wissen, oder schlimmer noch, sie legen riesige (2 GB +) Dateien dort ab. Besonders Spiele ...
Roman Starkov
2

Ich denke, Sie beantworten die Frage damit, dass es sich um eine Programmiererausbildung handelt. Ich weiß nicht genug über die Windows-API, und wenn das Speichern von Inhalten Documentsbesonders einfach ist, sollten Anwendungen diese nicht verschmutzen. Ich denke, es kommt darauf an, einen für jeden Benutzer bekannten Ort zu haben, an dem sich Daten befinden können. Für die Art von Daten, über die Sie sprechen, verwendet Mac OS X den ~/LibraryOrdner, obwohl einige Apps immer noch Dinge unter sich haben Documents. Vielleicht sollte (gibt es?) Etwas Ähnliches für Windows.

Persönlich bewahre ich meine Dokumente in einem Ordner mit dem gleichen Titel unter meinem Dropbox-Stammverzeichnis auf, wodurch sich zwar ein zusätzlicher Arbeitsaufwand für mich ergibt, ich mich jedoch vor dem von Ihnen angesprochenen Problem rette.

Roguesys
quelle
2

Obwohl ich verstehe, dass Sie sich an einer Diskussion beteiligen möchten, um Entwickler dazu zu bringen, dies nicht mehr zu tun, könnte dies zu einem der Dinge werden, wie etwa Taskleisten-Benachrichtigungssymbole, die nicht gestoppt werden konnten, sodass Microsoft sie einfach unter den Teppich gekehrt hat.

Ich habe bereits über den Ordner "Dokumente" gebloggt und ihn mit dem Umzug aus einer schlechten Nachbarschaft verglichen . Als Benutzer habe ich mir ein paar Hacks ausgedacht, um es selbst aufzuräumen. Ich würde alle nicht eingeladenen Ordner als "versteckt" markieren, wodurch sie aus dem Explorer verschwinden würden. Ich würde symbolische Links für Visual Studio 2005, 2008, 2010-Ordner in einem gemeinsamen "Visual Studio" -Ordner usw. erstellen.

Aber selbst mit PowerShell-Skripten zur Automatisierung hatte ich es satt, das auf jedem neuen Computer zu tun, den ich benutzte. Glücklicherweise gibt es in Windows 7 eine andere Option, die für mich ziemlich gut funktioniert.

Da Windows 7 dazu neigt, standardmäßig die Bibliothek "Dokumente" im Gegensatz zum Ordner "Dokumente" zu verwenden. Ich habe einfach den Ordner% userprofile% \ documents aus dieser Bibliothek entfernt und stattdessen meinen Dropbox-Ordner hinzugefügt. Jetzt öffnen / speichern Sie die Dialoge standardmäßig an diesem Ort und wenn ich auf Start -> Dokumente klicke, gehe ich zu meiner Dropbox.

Letztendlich würde ich gerne eine Art Basiszertifizierung für Apps sehen, die den iOS App Store-Richtlinien ähneln. Aber sie können nicht einmal die Fahrerhersteller dazu bringen, ihre Fahrer zu unterzeichnen ...

Josh
quelle
1
Mit anderen Worten, Sie denken, dass nichts getan werden kann, um es zu retten, aber es ist in Ordnung, weil es bessere Ideen gibt. +1.
Roman Starkov
1

Ich denke, die langfristige Strategie sollte darin bestehen, nichts anderes als Dokumente in Dateien zu speichern. Systemdaten , insbesondere Einstellungen, sollten in Speichersystemen gespeichert werden, die eher einer Datenbank als einem Dateisystem ähneln. Bonuspunkte, wenn diese Datenbank einfach und automatisch mit einem Dienst im Internet synchronisiert werden kann, sodass Sie unabhängig von der Anzahl der Computer, die Sie verwenden und wo Sie sich befinden, über eine Reihe von Einstellungen verfügen.

Ich weiß nicht viel über die Geschichte der Dateisysteme, aber es scheint mir, dass dies ziemlich früh erkannt wurde und ausführbare Dateien ein grundlegend anderes „Ding“ sind als Dokumente. Also wurden diese in einem speziellen Ordner (damals als Verzeichnis bezeichnet) abgelegt C:\DOSund der Benutzer hatte im Grunde die Kontrolle über den Rest des Laufwerks.

Niemand hat wirklich vorausgesagt, wie viel komplexer und unüberschaubarer Systeme im Laufe der Jahre werden und was für ein Chaos dies anrichten würde. Ich denke, es ist an der Zeit, die Technologie von Grund auf neu zu überdenken und die Synergien der Cloud zu nutzen. Bonuspunkte, wenn eine funktionsfähige Open-Source-Lösung erfolgreich ist, bevor ein Unternehmen dies tut :)

Timwi
quelle
3
Wäre es nicht sinnvoller, das Gegenteil zu tun, nämlich nur Systeminhalte als Dateien zu speichern und Benutzerdaten in Datenbanken verfügbar zu haben, insbesondere wenn diese über Webdienste synchronisiert werden?
Roman Starkov
1
Hm, die Details müssen sicherlich präzisiert werden ... aber der eigentliche Punkt, den ich anstrebte, ist, dass nur Dokumente im eigentlichen Sinne (dh Dateien, an denen ein Benutzer tatsächlich arbeitet und die nichts mit dem Ausführen des Systems zu tun haben) wirklich passen in die Metapher der Datei.
Timwi
Ich bin mir auch nicht sicher, ob dies das Problem behebt. Wenn Programme Zugriff auf das Speichersystem für Benutzerdokumente haben, können sie ihren Müll immer noch dort ablegen. Was erforderlich ist, ist etwas, das Programme davon abhält, dies zu tun, entweder durch technische Mittel oder indem Programmierer dazu gebracht werden, einfach freiwillig aufzuhören.
Roman Starkov
Das Register war ein solches System und es hat nicht so gut geklappt. Ich denke nicht, dass der AppData-Ansatz, bei dem Programme Dateien mit ihren eigenen Einstellungen speichern, so schlecht ist.
Pieter B
1

Selbst wenn einige Programme noch Daten in Dokumenten speichern, werden die Daten meiner Meinung nach meist in AppData gespeichert , sodass sie bereits in die richtige Richtung weisen, aber es gibt nicht viel, was Benutzer tun können: Jedes Programm ist dafür verantwortlich, was es ist tut.

Wildpeaks
quelle
1
Genau; Benutzer sind hilflos. Dies kann nur von Programmierern gelöst werden.
Roman Starkov
1

Lösung:
1. Klicken Sie mit der rechten Maustaste auf den Ordner "Dokumente" und wählen Sie die Registerkarte "Speicherort".
2. Ändern Sie den Speicherort für "Dokumente" an einen anderen Ort, den ich unter "C: \ Admin \ Configs" auswähle (sobald dies erledigt ist, sollten alle Anwendungen, die in "Dokumente" schreiben, stattdessen an "C: \ Admin \ Configs" gesendet werden.

Damit ist aber nur die Hälfte des Problems gelöst, der nächste Schritt dürfte ziemlich naheliegend sein.

  1. Erstellen Sie einen neuen Ordner in "C: \ User \\ Documentation"

Sie sollten dann in der Lage sein, dieses Verzeichnis zu den Bibliotheken hinzuzufügen und das alte zu löschen. Ich habe absichtlich einen anderen Ordnernamen in 'C: \ User \ ** Documentation **' festgelegt, weil ich sicherstellen wollte, dass nichts den Weg dorthin blockieren kann Mappe.

Sollte der Ordner 'Dokumente' aus den oben genannten Gründen erneut in Ihrem C: \ Benutzer \ erscheinen, klicken Sie einfach mit der rechten Maustaste auf den Ordner und machen Sie ihn zu einem unsichtbaren Ordner.

Innere
quelle
0

Das Speichern von Einstellungen in einer Textdatei ist eine umfassende plattformübergreifende Lösung.

Ich denke, die meisten von uns werden weiterhin Textdateien verwenden, die in das Benutzerverzeichnis kopiert werden, es sei denn, die Entwickler erstellen einen plattformübergreifenden Datenbankstandard.

Diejenigen von uns, die klug sind, werden verschiedene Einstellungsoberflächen für Systeme erstellen, die spezielle Einstellungsspeicher-Engines (wie die Windows-Registrierung) ermöglichen.

Craige
quelle
1
Beachten Sie, dass der Ordner "Documents" nicht das Verzeichnis "user" ist. Der Ordner „Dokumente“ ist ein Unterverzeichnis des Verzeichnisses des Benutzers, die Absicht , von denen angenommen werden , wo der Benutzer gespeichert seine eigenen Dokumente. Das Problem ist, dass Programme beschlossen, ihre Inhalte auch in den Ordner "Documents" zu legen , obwohl es bessere (und als solche dokumentierte) Orte für Programmeinstellungen gibt.
Dean Harding
1
Dies ist ein gutes Beispiel für einen Weg zum Dokumentenmüll. Die Leute portieren ein Programm, ohne viel über Windows zu wissen, und geben ihre Daten in das erste Verzeichnis, das ihnen in den Sinn kommt. Das Auffinden von "Dokumenten" ist wahrscheinlich viel einfacher als das Auffinden von "AppData", zumal bei letzterem entschieden wird, ob die Datei im Roaming- oder im lokalen Profil abgelegt wird - ungewohnte Begriffe für alle, die nicht tief mit der Windows-Entwicklung befasst sind.
Roman Starkov
Einverstanden und wieder - die echte Lösung besteht darin, eine plattformübergreifende Standard -Speicher-Engine zu haben.
Craige
1
Das wird nicht passieren. Bei der ursprünglichen Frage geht es darum, alle Windows-Programmierer neu auszubilden, und Ihre Antwort lautet, jeden Programmierer neu auszubilden. Sie werden auch Unix / Linux-Programmierer nicht dazu bringen, sich in eine Einstellungsdatenbank einzukaufen, da es sehr gute Gründe gibt, diese Dateien als Textdateien zu belassen, und Sie werden zusätzlichen Widerstand gegen die Vorgehensweise von Microsoft haben.
David Thornley