verificar se um diretório existe....
Olá,
será que você poderia me ajudar??? Estou precisando saber se um determinado diretório existe, se não existir preciso criá-lo. O problema é que não sei fazer nenhuma das coisas descritas acima.
Desde já muito obrigado....
Lauro Emerson
balceiro@bol.com.br
será que você poderia me ajudar??? Estou precisando saber se um determinado diretório existe, se não existir preciso criá-lo. O problema é que não sei fazer nenhuma das coisas descritas acima.
Desde já muito obrigado....
Lauro Emerson
balceiro@bol.com.br
Anonymous
Curtidas 0
Respostas
Lfernandos
26/02/2003
if not DirectoryExists(Path)then begin
if not CreateDir(Path) then begin
ForceDirectories(Path);
end;
end;
A função DirectoryExists testa se o dir existe.
A CreateDir tenta criar o diretório se falhar a ForceDirectories cria o diretório.
if not CreateDir(Path) then begin
ForceDirectories(Path);
end;
end;
A função DirectoryExists testa se o dir existe.
A CreateDir tenta criar o diretório se falhar a ForceDirectories cria o diretório.
GOSTEI 0
Aroldo Zanela
26/02/2003
Olá,
será que você poderia me ajudar??? Estou precisando saber se um determinado diretório existe, se não existir preciso criá-lo. O problema é que não sei fazer nenhuma das coisas descritas acima.
Desde já muito obrigado....
Lauro Emerson
balceiro@bol.com.br
Colega,
Primeiramente coloque FileCtrl na uses da Interface;
O DOS e Windows só permitem criar um diretório de cada vez. Por exemplo, para criar o diretório C:\APPS\SALES\LOCAL os diretórios APPS e SALES devem existir antes que o diretório LOCAL possa ser criado.
Use ForceDirectories para criar um diretório e todos os diretórios ´pais´ que ainda não existam.
ForceDirectories é uma procedure recursiva, bem como, já tem implementada os testes para verificar a existência do diretório. Portanto, não é necessário verificar se o diretório existe, pois se já existir ela abandona a execução.
var cDiretorio: String; begin cDiretorio:= ´C:\APPS\SALES\LOCAL´; ForceDirectories(cDiretorio); end;
GOSTEI 0
Nildo
26/02/2003
Ps.: Se existir o diretório, ele NÃO abandona a operação como Zanela disse. Ele apenas parte para o outro diretori oa ser criado. Em fim, ele força de qualquer maneira a criação de um caminho completo. Se existir ele pula, se nao existir ele cria.
falowwwwssss
falowwwwssss
GOSTEI 0
Aroldo Zanela
26/02/2003
Ps.: Se existir o diretório, ele NÃO abandona a operação como Zanela disse. Ele apenas parte para o outro diretori oa ser criado. Em fim, ele força de qualquer maneira a criação de um caminho completo. Se existir ele pula, se nao existir ele cria.
falowwwwssss
Se existir ele pula, se nao existir ele cria. ?????????
procedure ForceDirectories(Dir: string); begin if Length(Dir) = 0 then raise Exception.Create(SCannotCreateDir); if (AnsiLastChar(Dir) <> nil) and (AnsiLastChar(Dir)^ = ´\´) then Delete(Dir, Length(Dir), 1); if (Length(Dir) < 3) or DirectoryExists(Dir) or (ExtractFilePath(Dir) = Dir) then Exit; // avoid ´xyz:\´ problem. ForceDirectories(ExtractFilePath(Dir)); CreateDir(Dir); end
GOSTEI 0