Pregunta

Estoy intentando leer desde unos archivos usando algo como esto

IO.foreach("TeamFields.txt") { |line| fieldNames.push(line.chomp) }

Funciona bien cuando se ejecuta el comando de la línea, pero cuando paquete a un .exe con los zapatos y correr no puede encontrar el archivo. ¿Hay una manera de especificar una ruta relativa al archivo .exe o tengo para proporcionar la ruta completo del archivo (por ejemplo, "c: \ archivos \ TeamFields.txt")? Gracias por la ayuda.

¿Fue útil?

Solución

Esto se debe a que el ejecutable no se ejecuta con el directorio actual correcta.

Cualquiera de fijar el directorio actual (por ejemplo, en el acceso directo) o modificar su programa de Rubí para establecer automáticamente el directorio de trabajo al directorio del programa con:

Dir.chdir(File.dirname($PROGRAM_NAME))

Otros consejos

Es necesario establecer "Directorio de la aplicación actual" correctamente antes de ir relativa. El usuario puede ejecutar su aplicación con diferentes dir antes del proceso o sistema puede llamar a su aplicación con diferentes dir.

Si los archivos en cuestión están en la carpeta de su aplicación, lo único que tiene que hacer es conseguir esa carpeta, y configurarlo para estar al día.

No hago programa en Ruby, pero lo hago con ventanas, y las probabilidades son la ruta relativa se basa en la ubicación del archivo .exe.

Así que, sí, usted es probablemente mejor de pasar una ruta completa para el nombre del archivo.

El __FILE__ constante contendrá la ruta completa al archivo que se está ejecutando. A continuación, puede utilizar los métodos de la clase File de quitarse el nombre del archivo, agregue la ruta relativa para cualquier otro archivo en el paquete es lo que quiere y resolver el resultado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top