Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Trucos (https://www.clubdelphi.com/foros/forumdisplay.php?f=52)
-   -   Asociar una ruta con una letra de unidad (https://www.clubdelphi.com/foros/showthread.php?t=80774)

seoane 20-11-2006 14:15:19

Asociar una ruta con una letra de unidad
 
Este truco sirve para asociar una ruta de acceso con una letra de unidad, al igual que hace el comando subst.

Código Delphi [-]
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:

Código Delphi [-]
// 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.


La franja horaria es GMT +2. Ahora son las 21:16:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi