2011-01-28 20 views
5

Estoy escribiendo un script que me permite hacer una imposición básica en InDesign CS3, y una de mis tareas es abrir un cuadro de diálogo que permite al usuario seleccionar un archivo para colocar. Actualmente estoy haciendo esto con:Cómo cambiar la ruta de acceso predeterminada del cuadro de diálogo Abrir archivo?

var file = File.openDialog("Choose a File:"); 

El problema parece ser cuando navega hacia una unidad de red a través de un acceso directo. Por algún motivo, el cuadro de diálogo lo ve como un archivo y devuelve esa ruta desde el cuadro de diálogo, en lugar de navegar hacia la ubicación de la carpeta. Supongo que esto es solo un error en el diálogo, y mi idea inicial fue verificar si el archivo devuelto tiene una extensión correcta, y si no, mostrar el cuadro de diálogo nuevamente, abierto en la ubicación de la ruta devuelta. Sin embargo, parece que no puedo encontrar una manera de cambiar donde se abre por defecto; openDlg() solo tiene parámetros para String prompt, var filter y boolean multiselect. No estoy familiarizado con Javascript, por lo que no sé si esto es algo con una solución general o particular para InDesign.

EDITAR: Si alguien está interesado, aquí está el código final que utiliza para obtener el problema:

var path = new File("~/desktop"); 
var file = path.openDlg("Choose File:"); 
while (file.alias) { 
    file = file.resolve().openDlg("Choose File:"); 
} 

Básicamente, comprueba si se trata de un acceso directo (alias), y si es así, resuelve el objetivo y muestra el diálogo nuevamente Es una manera de hacerlo, pero funciona muy bien. Sin embargo, también es posible que desee agregar un tratamiento nulo, ya que si se cancela el diálogo, se devuelve un valor nulo.

Respuesta

1

¿Ha intentado obtener un identificador para un archivo/directorio que desea de forma predeterminada y llamando al fileHandle.openDlg()?

http://forums.adobe.com/message/1109421#1109421

+0

Bingo! Estaba recibiendo errores por un minuto antes de darme cuenta de que hay un 'openDialog' y un' openDlg', uno para los elementos de clase, uno para los elementos de instancia. 'openDlg' funciona muy bien, ¡gracias! – kcoppock

Cuestiones relacionadas