Curso de scripvox - Aula14 (Por Fabiano Ferreira)

    Operações com pasta.

    Nesta aula, vamos ver os comandos utilizados no scripvox para
trabalharmos com pastas, ou, como é chamado no dosvox e pelos usuários
mais antigos, que pegaram a época do ms dos, diretórios.
    Esses comandos complementarão as aulas anteriores que trataram de
arquivos.
    Na próxima aula, já começaremos um novo tema, e assim, já podemos
dizer que nosso curso está chegando perto do final.
    Então, vamos em frente!!!

    *Comando busca;

    Sim, é isso mesmo!
    O mesmo comando busca, que utilizamos para pesquisar arquivos,
utilizamos para pesquisar pastas.
No caso de buscar por pastas há apenas uma pequena mudança na forma de
uso: acrescentamos a palavra 'dir' após a variável que recebe o
resultado da busca, por exemplo:

Busca b dir "c:\fabiano"

Busca pelo diretório 'c:\fabiano'.
Se ele existir, variável b recebe o nome do diretório.
Se não existe, a variável b é deixada em branco.

    Veja mais um exemplo:

Seja x "c:\fabiano"

Busca b dir x

    Faz o mesmo que o código anterior, com a única diferença que o nome
do diretório a buscar está sendo passado através de uma variável.

    Assim como na busca de arquivos, podemos utilizar a palavra próximo
e uma máscara de seleção em lugar do nome do diretório, caso queiramos
listar as subpastas de uma pasta.
Veja o exemplo:

busca b dir "*.*"
repete r 2
busca b dir próximo
fim repete
Escreve b
Enquanto b <> ""
busca b dir próximo
Escreve b
Fim enquanto
Termina mudo

    O exemplo acima lista todas as subpastas da pasta de trabalho.

    Vamos explicar agora o início um tanto estranho desse algoritmo:
    Quando fazemos
busca b dir "*.*"
sempre o resultado retornado para b é "." um ponto.
Quando fazemos depois
Busca b dir próximo,
o resultado retornado é sempre ".."  dois pontos finais.
    E aí sim, a terceira vez que fizermos
busca b dir próximo, é que obtemos a primeira subpasta.
    Para não ficar muito repetitivo, fizemos a primeira busca.
A variável b recebeu o ponto.
Então fizemos o bloco de repetição determinada, para fazer as outras
duas buscas.
Saindo do bloco, já teremos o nome da primeira subpasta existente na
pasta de trabalho.

    E o exemplo abaixo, é válido?

Busca b dir
Escreve b
termina

O que acontece se rodarmos esse código?


*Comando dir cria;

Esse comando serve para criar uma pasta.
Forma de uso:
Dir cria "caminhodiretorio"
    Acrescentando um & (e comercial) após o nome do diretório, caso haja
algum erro ao criá-lo, este não é mostrado.

    Exemplo:

Dir cria "c:\teste"

Cria na unidade 'c' uma pasta chamada 'teste'.

    Outro exemplo válido:

Escreve "Nome do diretório a criar:"
Lê d

 Dir cria d &

    Cria um diretóriom, cujo o nome é informado pelo usuário.
O e comercial ao fim da linha indica que não deve ser acusado erro ao
tentar criar o diretório.

*Comando dir remove;
    Esse comando serve para remover pastas;
    Forma de uso:
Dir remove "nomediretorio".
Acrescentando o símbolo & (e comercial) ao fim da linha, não acusa erro
ao tentar remover a pasta.

*Comando dir troca;
    Esse comando troca a pasta de trabalho por uma outra.
Forma de uso:
Dir troca "nomediretorio"
Colocando um & (e comercial ) após o nome da pasta, não dá erro ao
tentar trocar o diretório.

Exemplo:

Dir troca "c:\curso"

O exemplo acima coloca o diretório 'c:\curso' como o diretório de
trabalho.

Outro exemplo válido:

Escreve "Informe o novo diretório de trabalho:"
Lê d
Dir troca d
Termina

O exemplo acima troca para um diretório cujo o nome foi passado via
teclado pelo usuário.

    Assim terminamos a aula 14.

    Exercício:

Fazer um programa com as seguintes características:
*pedir ao usuário que informe o nome de uma pasta;
*listar os arquivos e subpastas dessa pasta, gravando o resultado em um
arquivo texto;
*o nome do arquivo com a listagem dos arquivos e subpastas deve ser
determinado pelo usuário;
*A listagem não deve ser impressa na tela, somente gravada no arquivo;


*entregar a resposta até o dia 26/11, enviando para o seguinte endereço:
sanfersite@uol.com.br

Boa sorte!
