Uso legittimo della cartella "Documenti" di Windows nei programmi

38

Chiunque desideri che la cartella Documenti contenga solo le cose che colloca lì sa che la cartella Documenti standard è completamente inadatta per questa attività. Ogni programma sembra voler mettere le sue impostazioni, i suoi dati, o qualcosa di ugualmente irrilevante nella cartella Documenti , nonostante ci siano delle cartelle specifiche per questo lavoro 1 .

In modo che questo non suoni vuoto, prendi la mia cartella personale "Documenti" come esempio. Non lo uso mai , in quanto non ho mai, in nessuna circostanza, salvato nulla in questa cartella. Eppure, contiene 46 cartelle e 3 file al livello più alto, per un totale di 800 file in 500 cartelle. Sono 190 MB di "documenti" che non ho creato. Ovviamente tutti i documenti effettivi si perderebbero immediatamente in questo pasticcio.

La mia domanda è : si può fare qualcosa per migliorare la situazione sufficientemente da rendere nuovamente utile "Documenti", per esempio nei prossimi 5 anni? I programmatori possono essere in qualche modo educati in massa a non usarlo come discarica? Il sistema operativo potrebbe iniziare a segnalare alcune posizioni "false" nascoste in AppData tramite le API esistenti, consentendo solo a Explorer e alle varie finestre di dialogo Apri / Salva di sapere dove si trova la cartella Documenti "reale"? O ci sono tentativi completamente inutili o addirittura inutili?

1 Per la cronaca, ecco un breve riepilogo delle varie directory standard da utilizzare al posto di "Documenti":

  • RoamingAppData per i dati e le impostazioni specifici per l'utente . Questa è la la directory da utilizzare per i dati non temporanei specifici dell'utente. Tutto ciò che viene posizionato qui sarà disponibile su qualsiasi macchina a cui un determinato utente accede nelle reti in cui è configurato. Non posizionare qui file di grandi dimensioni, perché rallentano il login / logout in tali ambienti.
  • LocalAppData per i dati e le impostazioni di utente-e-macchina . Questi dati differiscono per ogni utente e ogni macchina. Questo è anche il luogo in cui devono essere inseriti dati utente molto grandi.
  • ProgramData per i dati e le impostazioni specifici della macchina . Questi sono gli stessi indipendentemente da quale utente è connesso e non si spostano su altri computer in una rete.
  • GetTempPath per tutti i file che possono essere cancellati senza perdita dei dati quando non sono in uso. Questo è anche il posto per cose come cache , perché come i dati temporanei, non è necessario eseguire il backup di una cache. Inserisci qui il tuo enorme cache e salvi i problemi di backup dell'utente.

"Documenti" dovrebbe essere usato solo mai se l'utente lo ha specificato manualmente inserendo un percorso o selezionandolo in una finestra di dialogo Salva. Quella è l'unica volta in cui mai è appropriato per salvare cose in "Documenti".

    
posta Roman Starkov 15.02.2011 - 19:02
fonte

8 risposte

17

Ci dovrebbe essere un incentivo visibile. Ad esempio, se gli utenti dovessero fornire il permesso di salvare nella cartella Documenti (al momento dell'installazione), i programmatori vorranno evitare di attivare quella finestra di dialogo spaventosa.

Una volta ottenuto l'incentivo, le persone si imbatteranno naturalmente in documenti come "Salva i dati specifici del programma in ProgramData" mentre provi a risolverlo.

In realtà, molti problemi potrebbero essere risolti da un bel framework di permessi ...

    
risposta data 16.02.2011 - 13:57
fonte
4

My question is: can anything be done to improve the situation sufficiently to make "Documents" useful again, say over the next 5 years?

In teoria, si potrebbe fare qualcosa. In teoria, Microsoft potrebbe:

  • Trova un posto migliore dove mettere i file delle impostazioni utente (nel processo, riconoscendo che molte applicazioni hanno motivi validi per inserire le impostazioni nei file).
  • Aggiungi questo alle linee guida per gli sviluppatori di applicazioni standard di Windows. (Presumo che tali linee guida esistano.)
  • Fai una grande cosa sulla conformità delle applicazioni alle linee guida, ad es. tramite una sorta di certificazione o creando e pubblicando scorecard di conformità. "Denominare e shaming" potrebbe fare miracoli ...

Va detto che Apple è sempre stata molto più proattiva con questo genere di cose. E mostra la qualità delle cose che girano sulle loro piattaforme.

    
risposta data 16.02.2011 - 10:54
fonte
2

Penso che tu risponda alla domanda in quanto si riduce all'educazione dei programmatori. Non ne so abbastanza dell'API di Windows e se memorizzare elementi in Documents è particolarmente semplice, ma in caso contrario le applicazioni non dovrebbero inquinarlo. Penso che dipenda da una posizione nota per utente in cui i dati possono risiedere. Per il tipo di dati di cui parli, Mac OS X utilizza la cartella ~/Library , sebbene alcune app continuino ad attaccare sotto Documents . Forse qualcosa di simile dovrebbe (esiste?) Esiste per Windows.

Personalmente, tengo i miei documenti su una cartella con lo stesso titolo sotto la mia radice Dropbox, che aggiunge un ulteriore livello di lavoro per me, ma mi salva dal problema che hai sollevato.

    
risposta data 15.02.2011 - 20:02
fonte
2

Anche se capisco che vuoi impegnarti in una discussione su come far smettere agli sviluppatori di farlo, potrebbe finire per diventare una di quelle cose come le icone di notifica della barra delle applicazioni che non possono essere fermate così Microsoft le ha semplicemente spazzate sotto il tappeto. / p>

In precedenza ho bloggato sulla cartella Documenti, paragonandolo a uscire da un brutto quartiere . Come utente, mi sono inventato un sacco di hack per provare a ripulirlo da solo. Contrassegnerei tutte le cartelle non desiderate come "nascoste" che farebbero sparire loro da Explorer. Vorrei creare collegamenti simbolici per le cartelle Visual Studio 2005, 2008, 2010 in una cartella "Visual Studio" comune, ecc.

Ma anche con gli script di PowerShell per automatizzarlo, mi sono stancato di farlo su ogni nuova macchina che ho usato. Fortunatamente, in Windows 7 c'è un'altra opzione che funziona piuttosto bene per me.

Poiché Windows 7 tende ad essere predefinito nella " libreria " Documenti "anziché nella cartella Documenti. Ho semplicemente rimosso la cartella% userprofile% \ documents da questa libreria e ho invece aggiunto la mia cartella Dropbox. Quindi ora aprire / salvare le finestre di dialogo predefinite in questa posizione e quando faccio clic su Start - > Documenti, mi porta nel mio Dropbox.

In definitiva, mi piacerebbe vedere una sorta di certificazione di base per le app simile alle linee guida sull'App Store di iOS. Ma non possono nemmeno convincere i produttori di driver a firmare i loro driver ...

    
risposta data 23.02.2011 - 05:28
fonte
1

Penso che la strategia a lungo termine dovrebbe essere quella di interrompere la memorizzazione di qualsiasi cosa diversa dai documenti nei file. I dati di sistema, le impostazioni specialmente , dovrebbero essere archiviate in sistemi di archiviazione che assomigliano a un database più di un file system. Punti bonus se tale database può essere facilmente e automaticamente sincronizzato con un servizio sul Web, in modo da avere effettivamente un set di impostazioni indipendentemente dal numero di computer che utilizzi e da dove.

Non so molto della storia dei file system, ma mi sembra che sia stato realizzato molto presto su quel sistema e che i file eseguibili siano una "cosa" fondamentalmente diversa dai documenti. Quindi quelli sono stati riposti in una cartella speciale (quindi chiamata directory) come C:\DOS e l'utente aveva praticamente il controllo del resto del disco.

Nessuno ha previsto realmente quanto sarebbero diventati i sistemi più complessi e ingestibili nel corso degli anni e che guai avrebbero fatto. Penso che sia giunto il momento di ripensare la tecnologia dalle basi e sfruttare la sinergia del cloud. Punti bonus se una soluzione open source praticabile decolla prima che una società lo faccia:)

    
risposta data 15.02.2011 - 21:16
fonte
1

Anche se alcuni programmi memorizzano ancora alcuni dati in Documenti , penso che la maggior parte memorizzi i loro dati in AppData , quindi stanno già andando nella giusta direzione, imho, tuttavia non ci sono molti utenti che possono fare: ogni programma è responsabile di ciò che fa.

    
risposta data 16.02.2011 - 01:45
fonte
1

Soluzione:
 1. Fare clic con il pulsante destro del mouse sulla cartella "Documenti" e selezionare la scheda "posizione".
 2. Cambia la posizione "Documenti" in un altro posto in cui scelgo "C: \ Admin \ Configs"  (una volta fatto questo, tutte le applicazioni, scrivendo su "documenti", dovrebbero invece essere inviate a C: \ Admin \ Configs.

Ma questo risolve solo metà del problema, il prossimo passo dovrebbe essere abbastanza ovvio.

  1. Crea una nuova cartella in "C: \ User \\ Documentazione"

Dovresti essere in grado di aggiungere quella directory alle librerie ed eliminare quella vecchia, ho deliberatamente impostato un nome di cartella diverso in "C: \ User \ ** Documentation **" perché volevo assicurarmi che nulla potesse essere difficile percorso per quella cartella.

Se la cartella "documenti" appare di nuovo in C: \ Utente \ a causa di quanto sopra, è sufficiente fare clic con il pulsante destro del mouse sulla cartella e trasformarla in una cartella invisibile.

    
risposta data 20.12.2013 - 09:13
fonte
0

La memorizzazione delle impostazioni in un file di testo è una soluzione multipiattaforma di tipo catch-all.

A meno che gli sviluppatori non dovessero creare uno standard per i database delle impostazioni multipiattaforma, penso che la maggior parte di noi continuerà a utilizzare i file di testo scaricati nella directory dell'utente.

Quelli di noi che sono intelligenti creeranno interfacce di impostazioni diverse per sistemi che consentono impostazioni specifiche per i motori di archiviazione (come il registro di Windows).

    
risposta data 15.02.2011 - 23:02
fonte

Leggi altre domande sui tag