Ver Mensaje Individual
  #2  
Antiguo 09-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.109
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No sé si se me escapará algo, es muy problable, pero, a ver qué tal parece esto:

Código Delphi [-]
<div align="left">// Indica si una ruta es solo una unidad o no.
// Ej. C:\ resultaría True, C:\Windows\ False.
//
function RutaEsSoloUnidad(ruta: string): boolean;
resourcestring
  rsErrorNoDir = 'El directorio especificado no existe';
var
  unidad, resto: string;
begin
  Result := true; // Por defecto
  // Extraemos la unidad de la ruta
  unidad := ExtractFileDrive(ruta);
  // Obtenemos el resto de la ruta
  resto := AnsiReplaceStr(ruta, unidad, '');
  if (resto <> '\') and (resto <> '')
    and DirectoryExists(unidad + resto) then
      Result := false; // No es solo la unidad
  // ¿Pero existe el directorio en la ruta?
  if not DirectoryExists(unidad + resto) then
    raise EInOutError.Create(rsErrorNoDir);
end;div>
<div align="left">// Ejemplo de llamada a la función
//
procedure TForm1.Button1Click(Sender: TObject);
begin
  if RutaEsSoloUnidad('C:\') then
    ShowMessage('Es solo una unidad')
  else ShowMessage('Es otro camino');
end;div>
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita