Nido Apple

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Buenas noches.

Encontré un script para ajustar la anchura de la columna del Nombre del Finder a la del nombre del archivo más largo en la opción de "Ver como Lista".
No he conseguido que funcione a pesar de los ajustes realizados por “ensayo y error” en una parte del programa.

El código es el siguiente:

tell application "Finder"
activate
set laVentana to window 1

--Crea una lista de vista de ventana del Finder
set current view of laVentana to list view

--Guarda las opciones de la lista de vista 
set lasOpciones to list view options of laVentana

set nombreDeColumna to first column of lasOpciones whose name is name column

-- Guarda en la lista losElementos los nombres de todos los ítems de laVentana
set losElementos to name of every item of laVentana

-- Obtener el número de caracteres del ítem de la lista cuyo nombre es el más largo)
set nombreMasLargo to 0
(* Inicializa a cero la variable donde guardará el NÚMERO DE CARACTERES del 
elemento (arhivo o carpeta) cuyo NOMBRE vaya teniendo el mayor número de caracteres *)
repeat with I from 1 to count of losElementos
    --Descarta los archivos invisibles, los cuales no necesitamos tener en cuenta
    --El comienzo con un "." indica el atributo de oculto de un archivo
    if character 1 of item I of losElementos is not "." then
        if (count of characters of item I of losElementos) > nombreMasLargo then
            set nombreMasLargo to count of characters of item I of losElementos
            --Conteo de los caracteres de cada uno de los nombres de los ítems de la lista de vista
            -- y va comparando el resultado con el almacenado como más largo hasta ahora. 
        end if
    end if
end repeat

-- esto solo funciona si el tamaño del texto es 12. El multiplicador 7.5 podría cambiarse (???)
-- si el tamaño del texto es otra cosa. 
set anchoDeseado to nombreMasLargo * 30 --  (??? Mi tamaño de letra es 16, pero no funciona)

-- HE PROBADO CAMBIANDO EL MULTIPLICADOR CON VALORES DESDE 7.5 HASTA 30 SIN ÉXITO.
-- CREO QUE ESTA ES LA PARTE QUE FALLA.

set width of nombreDeColumna to anchoDeseado
-- tenemos que cerrar y volver a abrir la ventana para "refrescar" los cambios.
-- puede haber un comando "actualizar ventana" pero no lo sé.

set elObjetivo to target of laVentana
delay 1 --añadido
close elObjetivo
delay 1 -- añadido
open elObjetivo

end tell

Por otro lado, las modificaciones se refieren exclusivamente a Window 1, no afectando al resto de ventanas que puedan estar abiertas.

¿Me podéis ayudar a localizar el error y a comprenderlo y ampliar el código al resto de ventanas que pudieran estar abiertas?

Gracias por anticipado.

Salud.

1 Respuesta

1voto

Peter Puntos283470

Mira a ver si te funciona esto.

tell application "Finder"
    activate
    set the_window to window 1
    set current view of the_window to list view
    set the_options to list view options of the_window
    set the_name_column to first column of the_options whose name is name column
    set the_items to name of every item of the_window
    -- get the longest name (count of characters)
    set longest_name to 0
    repeat with I from 1 to count of the_items
        --check for invisible files, which we don't need to consider
        if character 1 of item I of the_items is not "." then
            if (count of characters of item I of the_items) > longest_name then
                set longest_name to count of characters of item I of the_items
            end if
        end if
    end repeat
    -- this only works if the text size is 12. The multiplier 7.5 could be changed
    -- if the text size is something else. 
    set desired_width to longest_name * 7.5
    set width of the_name_column to desired_width
    -- we have to close and reopen the window in order to see any changes.
    -- there might be a "refresh window" command but I don't know it.
    set the_target to target of the_window
    close the_target
    open the_target
end tell

Ojo, hay limites en lo largo y ancho para los caracteres, es decir, si tienes un archivo que en el nombre tiene 90 caracteres, nunca vas a poder verlo completo sin mover manualmente el ancho de la columna.

Saludos.

0voto

DJUNQUERA comentado

Buenas noches, Peter.

Este código es el mismo que encontré e intenté comprender.

Su resultado es que se queda la columna Nombre con un ancho que deja aproximadamente 30 caracteres visibles usando un tamaño de letra de 16 en el Finder.
He modificado el tamaño de letra del Finder hasta 12 y tampoco he visto resultados satisfactorios.

Te envío mi sincero agradecimiento por tu ayuda.

Salud, Peter.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...