Llamada A La Consola, Proceso: Nautilus


Objetivo: Llamada A La Consola, Proceso: Nautilus
Hola;
Estaba desarrollando un programa cuando me encontré que si hago una llamada a la consola, ya sea con Shell o Exec, e inicio un proceso nautilus:
PUBLIC SUB Button3_Click() 'Abrir carpeta contenedora
DIM ruta AS String
ruta = FileChooser2.Dir
SHELL "nautilus " & ruta
END


De tal forma que si la ruta no tiene ningún espacio funciona (/home/usuario/carpetasinespacio) pero si el nombre del nodo seleccionado si lo tiene (/home/usuario/nombre de la carpeta) no funciona y me da un error de nautilus.

No sé exactamente lo que hay que hacer para solucionarlo ya que se que en la consola debe quedar /home/usuario/carpeta\ con\ espacio,
pero ni idea
Saludos y espero que puedan ayudarme

Objetivo: Re: Llamada A La Consola, Proceso: Nautilus
Hola.

¿Podrías explicar mejor lo que quieres hacer?.

Si utilizas el FileChooser, es para seleccionar un archivo a abrir. ¿Cual es tu objetivo al llamar a Nautilus?

Saludos

Perfil MP  
Objetivo: Re: Llamada A La Consola, Proceso: Nautilus
¿Y no sería mejor utilizar la clase Desktop?
desktop.open(filechooser2.selectedpath)


Prueba, pero a mi me parece que lo que quieres hacer es exactamente esto. Para que te funcione debes tener incluído gb.desktop en tu proyecto.

Un saludo

última edición por soplo el Lunes, 07 Diciembre 2009, 00:25; editado 1 vez
Perfil MP  
Objetivo: Re: Llamada A La Consola, Proceso: Nautilus
Haz caso a Soplo, pero si persistes en lo de Nautilus te diré que lo que no funciona es el espacio, que es carácter especial para la Shell (lo usa para separar parámetros). Si quieres usarlo tendrás que "escaparlo" es decir algo así como

Shell "Nautilus /home/micasateléfono/mis\ archivos\ bonitos"

Es decir, una barra invertida delante de cada carácter especial.

Suerte

Perfil MP  
Objetivo: Re: Llamada A La Consola, Proceso: Nautilus
Hola.

Prueba con este código:
PUBLIC SUB Button1_Click()

DIM sRutasinEspacios, sRutaconEspacios AS String

sRutaconEspacios = FileChooser1.Dir
sRutasinEspacios = Replace$(sRutaconEspacios, " ", "\\ ")'Reemplazamos los espacios por el caracter \ (debe ser doble)
SHELL "nautilus " & sRutasinEspacios

END


No importa si dentro de una carpeta con espacios en el nombre, tienes otras también con espacios.
Despues de las 2 barras invertidas debe ir un espacio.
Espero te sirva.

Saludos

última edición por abarzuaf el Lunes, 07 Diciembre 2009, 07:52; editado 2 veces
Perfil MP  
Objetivo: Re: Llamada A La Consola, Proceso: Nautilus
OK, muchas gracias a todos y por haber contestado tan rápido, la solución de Soplo me funcionó en cuanto activé el componente, también probé la de abarzuaf y me funciona sin problemas; pero sin embargo me voy a quedar con la de Soplo por sencillez( aunque me apunto la tuya para otras cosillas , solo tuve que cambiar .selectedpath por .dir
Saludos y muchas gracias por su tiempo.

P.D.: Mi intención es que después de haber hecho todo, el usuario tuviese la oportunidad de abrir la carpeta de destino de los archivos


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.424s (PHP: -85% SQL: 185%)
Consultas SQL: 47 - Debug off - GZIP Activado