Guest Lucas Pascoal Postado Novembro 8, 2007 Denunciar Share Postado Novembro 8, 2007 opa...queria saber se alguém podia me ajudar..tava lendo sobre as pesquizas de diretorio e não consegui implantar o codigo para seber a quantidade e o tamanho dos arquivos buscados..se alguém pudesse me ajudar seria bom.. já to pesquizando faz um tempo já..obrigado.. :huh: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Novembro 9, 2007 Denunciar Share Postado Novembro 9, 2007 Vamos a um exemplo que talvez ajude:jogue num form os seguintes componentesDirectoryListBox1DriveComboBox1FileListBox1FilterComboBox1ListView1BitBtn1 Label1na propriedade Filelist do DirectoryListBox1 coloque o FileListBox1na propriedade DirList do DriveComboBox1 coloque o DirectoryListBox1na propriedade FileList do FilterComboBox1 coloque o FileListBox1na propriedade colums do ListView1 coloque Nome Tipo Tamanho Datana proriedade ViewStyle coloque vsReportde 2 clicks no componente ListView1 mude a propriedade Alignment do ListView1.Colums[1] para taRigthJustifymude a propriedade Alignment do ListView1.Colums[2] para taRigthJustifymude a propriedade Alignment do ListView1.Colums[3] para taRigthJustifyagora vamos ao codigo:unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids, Outline, FileCtrl, StdCtrls, ComCtrls, ImgList; type TForm1 = class(TForm) FileListBox1: TFileListBox; DirectoryListBox1: TDirectoryListBox; DriveComboBox1: TDriveComboBox; FilterComboBox1: TFilterComboBox; ListView1: TListView; Button1: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; ListaDir : TStringList; implementation {$R *.DFM} { retorna o tamanho do arquivo, ou -1 se o arquivo não for encontrado } function tbFileSize(const FileName: string): integer; var SR: TSearchRec; I: integer; begin I := FindFirst(FileName, faArchive, SR); try if I = 0 then Result := SR.Size else Result := -1; finally FindClose(SR); end; end; {função para pegar a data do arquivo} function GetFileDate(Arquivo: String): String; var FHandle: integer; begin FHandle := FileOpen(Arquivo, 0); try Result := DateTimeToStr(FileDateToDateTime(FileGetDate(FHandle))); finally FileClose(FHandle); end; end; {função para pegar o nome do arquivo sem a extensão} function RemoveExt(pStrValue: string ): string; var i : integer; begin i := Pos('.',pStrValue); if i <> 0 then begin result := copy(pStrValue,1,i - 1); end else begin result := pStrValue; end; end; {função para pegar a extensão do arquivo sem o nome} function TipoArquivo(Nome: String): String; var SR: TSearchRec; I: integer; begin I := FindFirst(Nome+'.*', faAnyFile, SR); if I = 0 then Result := copy(Sr.Name,Pos('.',Sr.Name),4) else Result := ''; end; // Cria um stringList com todos os arquivos de um diretório // Aceita mascaras function GetFileList(FDirectory, Filter: TFileName; ShowFolder:Boolean): TStringList; var ARec: TSearchRec; Res: Integer; begin if FDirectory[Length(FDirectory)] <> '\' then begin FDirectory := FDirectory + '\'; end; Result := TStringList.Create; try Res := FindFirst(FDirectory + Filter, faAnyFile or faArchive, ARec); while Res = 0 do begin if ((ARec.Attr and faArchive) = faAnyFile) or ((ARec.Attr and faArchive) = faArchive) then begin if ShowFolder then begin Result.Add(FDirectory + ARec.Name); end else begin Result.Add(ARec.Name); end end; Res := FindNext(ARec); end; FindClose(ARec); except Result.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); var ListItem : TListItem; i: integer; tam : real; begin //ListaDir.Clear; //ListaDir := GetFileList(DriveComboBox1.Text,'*.*',true); ListView1.Items.Clear; // limpa a lista no ListView1 Label1.Caption := 'Total Arq = ' + inttostr(FileListBox1.Items.Count); // mostra o total de arquivos for i := 0 to FileListBox1.Items.Count-1 do begin tam := 0; {adicionar um item} ListItem:= ListView1.Items.Add; {pegar o nome do arquivo} ListItem.Caption:=(RemoveExt(ExtractFileName(FileListBox1.Items.Strings[i]))); if Pos('[', ListItem.Caption) > 0 then continue; {pegar a extensão do arquivo} ListItem.SubItems.add(trim(TipoArquivo(FileListBox1.Items.Strings[i]))); {pegar o tamanho do arquivo} tam := tbFileSize(FileListBox1.Items.Strings[i]) / 1024; if tam > 1 then ListItem.SubItems.add(floattostr(round(tam)) + ' KB') else ListItem.SubItems.add(floattostr(round(tam+1)) + ' KB'); {pegar a data e a hora do arquivo} ListItem.SubItems.add(GetFileDate(FileListBox1.Items.Strings[i])); end; end; end.voce pode usar a função GetFileList no lugar do FileListBox1 , esta é uma ideia inicial para o que voce esta querendoOBS: este codigo vai mostrar em um ListView o nome, tipo, tamanho e data dos arquivos que são mostrados no FileListBox e a quantidade de arquivos num Label abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Lucas Pascoal Postado Novembro 9, 2007 Denunciar Share Postado Novembro 9, 2007 vlw cara.. ainda não testei o codigo mais pelo q eu olhei por cima é isso mesmo q eu tava procurando...brigadao.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Lucas Pascoal Postado Novembro 9, 2007 Denunciar Share Postado Novembro 9, 2007 vlw cara.. ainda não testei o codigo mais pelo q eu olhei por cima é isso mesmo q eu tava procurando...brigadao..cara.. teste aki.. e deu tudo certo.. tava precisando saber o numero de pastas tb.. tipo.. de subpastas.. mais já to tentando organizar isso...brigadao.. :P Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Lucas Pascoal
opa...
queria saber se alguém podia me ajudar..
tava lendo sobre as pesquizas de diretorio e não consegui implantar o codigo para seber a quantidade e o tamanho dos arquivos buscados..
se alguém pudesse me ajudar seria bom.. já to pesquizando faz um tempo já..
obrigado.. :huh:
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.