sexta-feira, 3 de outubro de 2008

Artigo Nº 15: Trabalhando com Diretórios e Arquivos

Neste artigo veremos como criar diretórios, arquivos, listar os arquivos de um diretório em uma datagrid.

Primeiramente declare nas uses a System.IO; para poder utilizar-se desta biblioteca.

Para lista os arquivos de um diretório em uma datagrid, basta no onclick de um buttom, criar uma variável "Caminho" do tipo String, atribuir a ela uma caminho, no exemplo 1, esta sendo atribuido o caminho da aplicação no servidor da seguinte maneira "caminho := Server.MapPath('.');", após informado o diretório do qual se deseja listar os arquivos chamando a função no "datagrid.datasource := System.IO.Directory.GetDirectories(caminho);" e logo após chamar o porcedimento "DataGrid1.databind;".

Exemplo 1:
procedure TWebForm1.btn_listar_Click(sender: System.Object; e: System.EventArgs);
var
caminho : string;
begin
caminho := Server.MapPath('.');
DataGrid1.DataSource := System.IO.Directory.GetFiles(caminho);
DataGrid1.databind;
end;


Também é possivel listar apenas os subdiretório de um diretório conforme exemplo 2.

Exemplo 2:
procedure TWebForm1.btn_listar_1_Click(sender: System.Object; e: System.EventArgs);
var
caminho : string;
begin
caminho := Server.MapPath('.');
DataGrid1.DataSource := System.IO.Directory.GetDirectories(caminho);
DataGrid1.databind;

end;

Existe sim uma maneira de criar subdiretório no delphi, basta declara duas variáveis, a primeira deve ser com as informações do diretório, da seguinte maneira "pasta : System.IO.DirectoryInfo;" e a segunda uma variável String. Bom agora o procedimento de criação de diretório ou subdiretório pode ser feito de duas maneiras, veja o exemplo 3.

Exemplo 3:
procedure TWebForm1.btn_criar_Click(sender: System.Object; e: System.EventArgs);
var
pasta : System.IO.DirectoryInfo;//Declare a uses System.IO
caminho : string;
begin
caminho := Server.MapPath('.');
pasta := DirectoryInfo.Create('C:\');
pasta.CreateSubdirectory('temp\'+TextBox1.Text);
Directory.CreateDirectory(caminho+'/'+TextBox1.Text);
end;


É possivel verificar se um diretório já existe, quando se precisar dele, para não se tentar criar um diretório com o mesmo nome ,exemplo 4.

Exemplo 4:
procedure TWebForm1.btn_verificar_Click(sender: System.Object; e: System.EventArgs);
var
Caminho : String;
begin
Caminho := Server.MapPath('./teste');
if Directory.Exists(Caminho) then
Response.Write('Este Diretório ja Existe')
else
Response.Write('Este Diretório não Existe')
end;

Existem diversas outras funcionalidades dentro da biblioteca System.IO, basta implementar. Aqui vimos apenas 4 formas de se trabalhar com diretórios e arquivos.


Forte abraço e até a próxima.