Cómo crear/asignar un icono de carpeta personalizado mediante el símbolo del sistema

Cómo crear/asignar un icono de carpeta personalizado mediante el símbolo del sistema

Lo que me gusta hacer es crear carpetas y asignar imágenes/carátulas como miniaturas de las carpetas, en lugar de generar el icono de carpeta estándar. hago esto muy a menudo(Básicamente, todas las carpetas para las que puedo molestarme en encontrar una imagen).

Configuré un archivo script/.bat para poder colocar cualquier archivo de imagen en la carpeta, presiono la tecla de acceso rápido y luego ejecutará un programa.(Pixillón)para convertir la imagen a un archivo .Ico y ocultarla. También creará unescritorio.iniarchivo, como lo que hace Windows 10 cuando configura manualmente el icono personalizado de la carpeta.

[.ShellClassInfo]
IconResource=%ico%,0

Una vez finalizado el script, Windows 10 reconoce que tengo un icono de carpeta personalizado.(porque no usa el generado, mostrando los íconos dentro de la carpeta), sin embargo, muestra una carpeta vacía como icono. Si coloco un archivo .url en la carpeta y luego le cambio el nombre (manualmente, no funciona desde cmd), el ícono de la carpeta se actualizará/actualizará correctamente a mi ícono personalizado.


Lo que estoy buscando es hacer esto sin este último paso manual.
Para configurar yactualizarel icono automáticamente.

Respuesta1

La personalización a través de un desktop.iniarchivo requiere que no solo el archivo, sino también la carpeta tenga su atributo Systemo establecido. ReadOnlyEse es el "interruptor" que le indica al sistema operativo que busque y procese el archivo desktop.ini de la carpeta. Cuando Windows establece un ícono personalizado, establece el ReadOnlyatributo; esto se puede verificar agregando la Attributescolumna a unDetail vista enExplorador. EnPotencia Shell, si estás dentro de la carpeta/directorio, usas:

### View attriubtes
(Get-Item .).Attributes
# OUtput
PS C:\...\Customized FOlder>( Get-Item . ).Attributes
ReadOnly, Directory

### Set ReadOnly attriubtes
(Get-Item .).Attributes += 'ReadOnly'
# no output when successful

### Clear ReadOnly attriubtes
(Get-Item .).Attributes -= 'ReadOnly'
# no output when successful

ingrese la descripción de la imagen aquí

Atributo borrado y vista actualizada:

ingrese la descripción de la imagen aquí

...y de regreso: ingrese la descripción de la imagen aquí

información relacionada