Página 1 de 1

Função para gravar em um vetor todos os nomes de arq diretor

Enviado: 24 Fev 2010 23:10
por rangelssilva
Boa Noite, Pessoal


Alguem sabe me dizer se existe alguma função , lib ou similar que verifica a existencia de um diretorio , em seguida vai ate esse diretorio, pega todos os nomes de arquivos da extensao escolhida e grava num vetor????


Caso positivo, qual seria?????
Caso negativo, talvez eu desenvolva uma.....

Valeu galera....

Um abraçõ pra todo mundo.....
Valeu.....
;)

Re: Função para gravar em um vetor todos os nomes de arq diretor

Enviado: 25 Fev 2010 02:48
por rochinha
Amiguinho,

Use a função ADIR():


ADIR([<cFilespec>],
[<aFilenames>],
[<aSizes>],
[<aDates>],
[<aTimes>],
[<aAttributes>]) --> nFiles


Exemplo

Código: Selecionar todos

        LOCAL aFiles[ADIR("*.TXT")] // É preparado um vetor para conter os arquivos
        ADIR("*.TXT", aFiles) // Os nomes dos arquivos são carregados para o vetor
        AEVAL(aFiles, { |element| QOUT(element) }) // O nome de cada arquivo será apresentado na tela
Para afinar mais ainda o trabalho como este voce pode usar Directory()

DIRECTORY(<cDirSpec>, [<cAttributes>]) --> aDirectory

Argumentos:

<cDirSpec> identifica drive, pasta ou especificação de arquivo, *.TXT, *.DOC, etc. Se omitido o default será *.*.

<cAttributes> especifica quais atributos refinarão a pesquisa.

Attributo Descrição
------------------------------------------------------------------------
H Arquivos escondidos
S Arquivos de Sistema
D Pasta ou diretórios
V Pesquisa somente por volume excluindo arquivos
------------------------------------------------------------------------

Returno:

DIRECTORY() returna um vetor com subvetores, onde cada subvetor contem informação de cada arquivo coletado.

Estrutura do subvetor:


Posição Metasimbolo Directry.ch
------------------------------------------------------------------------
1 cName F_NAME
2 cSize F_SIZE
3 dDate F_DATE
4 cTime F_TIME
5 cAttributes F_ATTR
------------------------------------------------------------------------

Examplos:

Código: Selecionar todos

        #include "Directry.ch"
        //
        aDirectory := DIRECTORY("*.*", "D")
        AEVAL( aDirectory, {|aFile| QOUT(aFile[F_NAME])} )
Montará um vetor contendo somente informações de pastas.

Código: Selecionar todos

        #include "Directry.ch"
        //
        nTamanho := Directory("AUTOEXEC.BAT")[1][2]
Trará informações sobre o AUTOEXEC.BAT referente ao seu tamanho.

Faça umas pesquisas no forum e voce encontrará mais exemplos.

Re: Função para gravar em um vetor todos os nomes de arq diretor

Enviado: 28 Fev 2010 20:34
por rangelssilva
Obrigado.. VOU tentar, e qualquer dúvida posto um tópico.....

Abc....
:xau