PDA

Ver la Versión Completa : Asociar una ruta con una letra de unidad


seoane
20-11-2006, 14:15:19
Este truco sirve para asociar una ruta de acceso con una letra de unidad, al igual que hace el comando subst.


function AsociarLetra(Letra: Char; Ruta: String): Boolean;
var
Buffer: Array [0..MAX_PATH] of Char;
begin
if GetShortPathName(PChar(Ruta),@Buffer,Sizeof(Buffer)) > 0 then
Result:= DefineDosDevice(0,PChar(Letra + String(':')),@Buffer)
else
Result:= FALSE;
end;

function BorrarLetra(Letra: Char): Boolean;
begin
Result:= DefineDosDevice(DDD_REMOVE_DEFINITION,PChar(Letra + String(':')),nil);
end;


Por ejemplo, si queremos asociar la letra de unidad Z a la carpeta "C:\Archivos de programa", lo hariamos de la iguiente manera:


// Para crear la asociacion
AsociarLetra('Z','C:\Archivos de programa');
// Para borrar la asociacion
BorrarLetra('Z');


Estas asociaciones no se mantienen al apagarse el equipo, asi que habria que volver a realizarla otra vez al encenderlo otra vez.

Al González
26-11-2006, 17:35:09
No cabe duda que la suerte es suertuda.

Me entró curiosidad echarle por primera vez un vistazo al listado de trucos y me encuentro éste, justo lo que buscaba ayer por la noche: ¿cómo crear una unidad virtual sobre una ruta local? Algo que deseo hacer para poder trabajar con mi portátil de manera transparente al desconectarme de la red del trabajo.

Gracias Domingo.

Una pregunta, ¿este método servirá para asociar una letra de unidad a una ruta tipo "\\Maquina". Lo pregunto porque el explorador de Windows siempre requiere que se especifique un recurso compartido (no le basta el nombre de la maquina).

Un abrazo.

Al González. :)

seoane
26-11-2006, 20:56:22
Hola Al, la respuesta a tu pregunta es que no lo se, de hecho hasta que lo mencionaste no se me ocurrió que pudiese admitir rutas UNC. Yo probé con "\\127.0.0.1\c$" y funciona, mientras que "\127.0.0.1" no, pero tampoco puedo hacer muchas mas pruebas.

Al González
27-11-2006, 01:04:08
Hola de nuevo.

Tal vez la razón por la que no funcione con sólo un nombre o dirección de máquina es que éstos no necesariamente representan carpetas de archivos, sino todo tipo de "recursos compartidos".

De cualquier forma, así como lo has mostrado me resulta muy útil para trabajar desconectado de la red.

Saludos.

Al.