El directorio actual se obtiene con la función
CurDir(unidad).
Debes notar que existe toda una lista de 'directorios' actuales, una por cada unidad, sin embargo para saber la ruta actual de la unidad actual utiliza
dim rutaActual as string
rutaactual= curdir ' sin especificación de unidad
Puedes establecer una ruta como la actual con
ChDir ( ruta) ' change directory
... sin embargo chdir sólo cambia el directorio actual, no la unidad actual, para ello utiliza:
ChDrive( unidad) ' change drive
No es buena idea dejar el commondialog sin su initdir, puedes usarlo de esta manera al arrancar el formulario:
' en el evento load del formulario
if commondialog1.initdir="" then
commondialog1.initdir= app.path
end if
Con ello te aseguras que commondialog apunta a la aplicación , luego durante su utilización siemppre podrás cambiarlo.
¿ Por qué conviene utilizar initdir...? Porque si no cualquier actividad de otra aplicación puede cambiar el directorio actual, resulta estúpido 'bailar' al son de programas ajenos a tu aplicación. supongamos que tu programa trabaja sobre canciones en mp3, y que dichas canciones se localizan en mis documentosmi música... sería pesado para un usuario que acaba de cargar una canción y ha localizado dicha ruta, que la próxima vez tenga que ir desde: f:elProgramaRolloaplicaciónversiónupdate3.6 nuevamente a c:documents and settingsusuriomis documentosmi música
El directorio y la unidad actual es común al S.O. todas las aplicaciones lo pueden utilizar, por ejemplo VB6.0 cuando arranca establece chdir a la ruta donde se localiza (típicamente en: C:Archivos de programaMicrosoft Visual StudioVB98 )
abre el VB6.0 nuevo proyecto escribe ´copia y pega este código...
Private Sub Form_Load()
MsgBox CurDir
ChDir ("c:windows")
End Sub
ejecútalo 1 vez, y te saldrá la ruta que te indiqué antes, ahora para la ejecución del programa (pero no cierres el vb)
ejecútalo nuevamente, ahora te mostrá la ruta que hemos puesto. Como en el código cambiamos la carpeta actual y seguimos en la unidad actual , el msgbox nos lo mostrará... vamos a otro ejemplo...
Para la ejecución del programa, modifica el código al siguiente:
Private Sub Form_Load()
MsgBox CurDir
ChDir ("C:Documents and SettingsAdministradorEscritorio")
ChDrive ("d")
End Sub
ejecútalo verás que la carpeta nos muestra ahora que es: c:windows (el msgbox está antes del cambio), para la ejecución y...
ejecútalo una vez más, verás que ahora curdir arroja 'd:' y no c:windows, esta será la ruta actual para la unidad c.. ul último cambio... como hemos cambiado de unidad, antes, nos muestra la ruta actual para la unidad 'd', sino hay establecido un directorio actual para dicha unidad, el directorio actual es igual que la unidad. Para la ejecucíón y modifica el código por este:
Private Sub Form_Load()
ChDrive ("c")
MsgBox CurDir
End Sub
ejecuta ahora este nuevo cambio, ahora mostrará la ruta que asignamos como actual para la unidad 'c:' (si ninguna otra aplicación lo ha cambiado desde entonces, claro, esto es aplicable siempre), es decir la ruta: C:Documents and SettingsAdministradorEscritorio
Creo que con esto tienes ya suficiente...
p.d.: si no tines más que una unidad, pero tienes algún USB, conéctalo, o si tienes unidad de CDROM, inserta un disco legible (no virgen, ni estroperado). Y si alguna ruta de las mostradas como ejemplo te diera dificultad o no exista en tu equipo, lóogicamente puedes sustituirla por otra...
...con cualquier duda, pregunta...