Puedes ayudarte con esto:
Este codigo lo tienes que adaptar y colocarlo en Global Functions, antes que de todo. no te olvides de quitarle todo lo referente al Debug.
Debug.ShowWindow(true);
Debug.Clear();
tbDrives = Drive.Enumerate();
if (tbDrives) then
for i, v in pairs(tbDrives) do
nDriverType = Drive.GetType(v);
if (nDriverType == DRIVE_UNKNOWN) then
Debug.Print(tbDrives[i].." is a Unknow Drive".."\r\n");
elseif (nDriverType == DRIVE_NO_ROOT_DIR) then
Debug.Print(tbDrives[i].." is a No root dir Drive".."\r\n");
elseif (nDriverType == DRIVE_REMOVABLE) then
--La ruta de los H.D.D extraibles, creo tambien te muestra las USB.
bDrivePath = tbDrives[i];
--Debug.Print(tbDrives[i].." is a Removable Drive".."\r\n");
elseif (nDriverType == DRIVE_FIXED) then
Debug.Print(tbDrives[i].." is a Fixed Drive".."\r\n");
elseif (nDriverType == DRIVE_REMOTE) then
Debug.Print(tbDrives[i].." is a Remote Drive".."\r\n");
elseif (nDriverType == DRIVE_CDROM) then
Debug.Print(tbDrives[i].." is a CDROM Drive".."\r\n");
elseif (nDriverType == DRIVE_RAMDISK) then
Debug.Print(tbDrives[i].." is a Ram Disk Drive".."\r\n");
end
end
end
Con esta tabla localizas el H.D.D correspondiente y canalizas la ruta hacia el mismo, una vez localizado te sera mas facil acceder a los datos del mismo.
A mi se me ocurre un filtro para evitar errores por si tu Drive no esta conectado...
On Startup:
if (bDrivePath == nil) then
Dialog.Message("Error", "No \"removable disk\" detected!\r\n\r\nPlease connect it and try again ...", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
Application.Exit();
end
Deberia de funcionarte a la perfeccion, pero recuerda que si tienes mas de un Disco Extraible entonces deberas de ser mas especifico en el filtro para identificar la letra de tu Disco Duro Extraible...
Testea este codigo y espero tus dudas.
Saludos.
Si logras lo que pretendes te pido que postees tu resultado para que otros usuarios tengan la oportunidad de utilizarlo, de igual manera, si alguien mas mira esto y le sirve este codigo espero sus aportes, esto me impulsara a seguirlos ayudando u al menos orientarlos, de lo contrario dejare de ayudar a quien omita este llamado.