
Como se puede ver en otras preguntas en Internet y aquí en SuperUser (por ejemplo,Evitar que los programas utilicen Mis documentos), a los usuarios de Windows les resulta muy molesto que los programas decidan por sí mismos añadir sus propias carpetas a la carpeta Documentos del usuario.
La carpeta Documentos del usuario, al igual que su carpeta Música o Imágenes, es para que sus archivos personales sean administrados, estructurados y organizados de una manera que tenga sentido sólo para ella. Hay tantos programas que descargan sus archivos aquí que rápidamente puede resultar imposible encontrar sus propios documentos reales.
Si busca en Internet y como superusuario, encontrará los siguientes consejos variados, todos los cuales no son soluciones a la pregunta:¿Cómo puedo evitar que esto suceda?
- Mueva su carpeta Documentos a otro lugar, luego cree una nueva carpeta que el sistema no sepa que realmente usará para sus documentos. (No es bueno: yodesearel sistema para saber donde guardo mis documentos, para todas las demás ocasiones esto es útil.)
- Pon todas tusactualdocumentos dentro de una subcarpeta dentro de la carpeta Documentos. (No es bueno: ¿por qué siempre tengo que buscar en un nivel para llegar a mis documentos y pasar por todas las carpetas de spam en el nivel principal?)
- Limpie manualmente la carpeta periódicamente. (No es bueno: eso romperá muchos de esos programas).
- Varios métodos para evitar la creación de carpetas no autorizadas. (No es bueno: eso romperá muchos de esos programas).
- Ejecutar programas en una VM. (No es bueno: exageración en el 99% de los escenarios).
- No uses esos programas. (No es bueno: necesito usar esos programas).
Finalmente puede llegar a la solución que uso actualmente, que creo que es la mejor de muchas malas:
- (Opcional: mueva las carpetas infractoras a otro lugar y luego vincule esa ubicación nuevamente a Documentos).
- Esconderlas carpetas infractoras en Documentos.
¡Puaj!
(Solo para dar un ejemplo sencillo de por qué este estilo de solución sigue siendo inadecuado: uno debería poder apuntar, por ejemplo, un software de copia de seguridad directamente a Usuarios/Documentos – o incluso copiar toda la carpeta – y saber exactamente lo que está obteniendo. Además , mucha gente necesita mantener activada la opción "Mostrar archivos ocultos").
¡Estoy llegando poco a poco a una pregunta! – ¡Esto no es sólo una perorata! La nota final es señalar que la razón por la que ocurre este problema es porque los programadores son perezosos y descargan los archivos en un lugar en el que pueden estar seguros de que el usuario puede escribirlos, a pesar de que hay carpetas AppData dedicadas disponibles. Una vez que este comportamiento está codificado, sólo el desarrollador puede cambiarlo, y la mayoría no lo hará.
Entonces. Sólo hay una posible solución que puedo imaginar y es esta.De alguna manera, la variable de entorno que determina la ubicación del usuario/documentos debe presentarse de manera diferente a programas específicos.He llegado a una pregunta -
¿Cómo podría lograrse esto?
Respuesta1
Desafortunadamente, no existe una variable de entorno para la ubicación de los documentos del usuario.
Esta ruta es más bien devuelta por una función API llamada
SHGetKnownCarpetaRuta
que devuelve carpetas conocidas identificadas por su
Constantes KNOWNFOLDERID, que para la carpeta Documentos por usuario es la constante
FOLDERID_Documents
.
Por lo tanto, para cambiarlo para programas específicos, sería necesario escribir un programa que creara un enlace para todo el sistema SHGetKnownFolderPath
y devolviera el valor deseado. No conozco ningún producto de este tipo.
No veo otra solución que cambiar los parámetros de configuración de los productos en cuestión para establecer una ubicación de almacenamiento predeterminada. Si no tienen dicho parámetro, la única acción posible es quejarse al desarrollador.
Respuesta2
Probablemente no exista una solución única para todos los programas. Para el software ya instalado, como señaló harrymc, el programa puede tener configuraciones que puede modificar o entradas de registro que se pueden editar. Si le preocupa la creación de carpetas durante la instalación, supongo que modificar los valores del registro paraPersonaly (si existe){f42ee2d3-909f-4907-8871-4c22fc0bf756}, que se encuentra debajo HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
para apuntar a otra carpeta, es decir, 'C:\Users\\BadApps` "engañaría" al instalador para que cree carpetas en esa ubicación. Después de la instalación, los valores deberían restaurarse a sus rutas normales. Se podrían escribir scripts simples para "alternar" estos valores si es una necesidad frecuente.