Introdução ao Modelo do File System Object no VB
Um novo recurso do Visual Basic é o File System Object, que fornece uma ferramenta baseada em objetos para trabalhar com pastas e arquivos. Isto permite que você use a sintaxe familiar de métodos e propriedades de objetos com um conjunto rico de propriedades, métodos e eventos para fazer o processamento destes elementos.
O modelo de objetos do FSO lhe dá a habilidade de criar, alterar, mover e excluir pastas e detectar se uma pasta particular existe, e, existindo, onde. Também permite que você obtenha informações sobre as pastas tais como seus nomes, a data em que foram criadas ou modificadas pela última vez e assim por diante.
O modelo de objetos do FSO faz o processamento de arquivos muito mais fácil
também. Quando está processando arquivos, você primeiramente tem como meta armazenar informação num formato eficiente tanto na ocupação de espaço como no acesso. Você precisa ser capaz de criar arquivos, incluir e atualizar e obter saída com eles. Se você usar os recursos de um banco de dados, isto pode ocasionar uma sobre carga de trabalho para a sua aplicação. Por muitas razões você pode não querer todo aquele aparato de acesso a dados no seu sistema ou o seu acesso aos dados pode não requerer todas os recursos de um sistema gerenciador de banco de dados. Neste caso, armazenar seus dados num arquivo binário ou de texto pode ser a solução mais eficiente.
O modelo de objetos do FSO, que está contido na Scripting type library (Scrrun.Dll), suporta criação de arquivos de texto e sua manipulação através do objeto TextStream. Ele ainda não suporta a criação e manipulação de arquivos binários. Para manipular arquivos binários, use o comando Open com o sinalizador Binary.
Criando um Objeto FSO
Sempre antes de você usar um método FSO, você deverá criar um objeto FSO para usar o método do mesmo.
Descrição
Fornece acesso ao sistema de arquivos de um computador.
Sintaxe
Scripting.FileSystemObject
Comentários
O código a seguir ilustra como o FileSystemObject é usado para retornar um objeto TextStream que pode ser lido de ou gravado para:
Set fs = CreateObject("Scripting.FileSystemObject") Set a = fs.CreateTextFile("c:\arqteste.txt", True) a.WriteLine("Isto é um teste.") a.Close
No código mostrado acima, a função CreateObject retorna o FileSystemObject (fs). O método CreateTextFile cria então arquivo como um objeto TextStream (a) e o método WriteLine escreve uma linha de texto para o arquivo de texto criado. O método Close libera o buffer e fecha o arquivo.
Esse foi um exemplo simples de criação de um arquivo de texto (*.txt). Agora que você ja sabe como criar um FSO vamos aos métodos, agora fica mais divertido! =]
Métodos
Método Move
Descrição
Move um arquivo ou pasta especificada de um local para outro.
Sintaxe
object.Move destination
A sintaxe do método Move possui as seguintes partes:
object -- Obrigatória. Sempre o nome de um objeto File ou Folder.
destination -- Obrigatória. O destino para onde o arquivo ou pasta deve ser movido. Não são permitidos caracteres curinga.
Comentários
Os resultados do método Move em um File ou Folder são idênticos às operações efetuadas usando FileSystemObject.MoveFile ou FileSystemObject.MoveFolder. Você deve notar, no entanto, que os métodos alternativos são capazes de mover vários arquivos ou pastas.
Método CopyFile
Descrição
Copia um ou mais arquivos de um local para outro.
Sintaxe
object.CopyFile source, destination[, overwrite]
A sintaxe do método CopyFile possui as seguintes partes:
object --- Obrigatória. O object é sempre o nome de um FileSystemObject.
source --- Obrigatória. A especificação de arquivo da seqüência de caracteres, que pode incluir caracteres curinga, para um ou mais arquivos a serem copiados.
destination --- Obrigatória. O destino da seqüência de caracteres onde o arquivo ou arquivos de source serão copiados. Não são permitidos caracteres curinga.
overwrite --- Opcional. O valor Booleano que indica se os arquivos existentes têm que ser sobrescritos. Se for True, os arquivos são sobrescritos; se for False, não são sobrescritos. O padrão é True. Observe que o CopyFile falhará se destination tiver o atributo somente leitura definido, não importa qual seja o valor de overwrite.
Comentários
Os caracteres curinga só podem ser usados no último componente de caminho do argumento source. Por exemplo, você pode usar:
FileSystemObject.CopyFile "c:\meusdocumentos\cartas\*.doc", "c:\pastatemp\"
Mas não é possível usar:
FileSystemObject.CopyFile "c:\meusdocumentos\*\R1???97.xls", "c:\pastatemp"
Se source contiver caracteres curinga ou destination terminar com um separador de caminho (\), presume-se que destination seja uma pasta existente na qual serão copiados os arquivos correspondentes. Caso contrário, presume-se que destination seja o nome de um arquivo a ser criado. Em ambos os casos, três possibilidades podem ocorrer quando um arquivo individual é copiado.
Se destination não existir, source será copiado . Esse é o caso normal.
Se destination for um arquivo existente, ocorrerá um erro, caso overwrite seja False. Caso contrário, será feita uma tentativa de copiar source sobre o arquivo existente.
Se destination for um diretório, ocorrerá um erro.
Ocorrerá também um erro se um source que esteja usando caracteres curinga não corresponder a qualquer arquivo. O método CopyFile é interrompido no primeiro erro encontrado. Nenhuma tentativa é efetuada para reverter ou desfazer quaisquer alterações efetuadas antes da ocorrência de um erro.
=== Atualidado 25/08/07 ===
Método CopyFolder
Descrição
Copia de maneira recursiva uma pasta de um local para outro.
Sintaxe
object.CopyFolder source, destination[, overwrite]
A sintaxe do método CopyFolder possui as seguintes partes:
object --- Obrigatória. Sempre o nome de um FileSystemObject.
source --- Obrigatória. A especificação da pasta de seqüência de caracteres, que pode incluir caracteres curinga, para uma ou mais pastas a serem copiadas.
destination --- Obrigatória. O destino da seqüência de caracteres onde a pasta e as subpastas de source devem ser copiadas. Não são permitidos caracteres curinga.
overwrite --- Opcional. Valor Booleano que indica se pastas existentes devem ser sobrescritas. Se for True, os arquivos são sobrescritos; se for False, não são sobrescritos. O padrão é True.
Comentários
Os caracteres curinga só podem ser usados no último componente de caminho do argumento source. Por exemplo, você pode usar:
FileSystemObject.CopyFolder "c:\meusdocumentos\cartas\*", "c:\pasta temp\"
Mas não é possível usar:
FileSystemObject.CopyFolder "c:\meusdocumentos\*\*", "c:\pastatemp\"
Método CreateTextFile
Descrição
Cria um nome de arquivo especificado e retorna um objeto TextStream que pode ser usado para ler ou gravar no arquivo.
Sintaxe
object.CreateTextFile(filename[, overwrite[, unicode]])
O método CreateTextFile possui as seguintes partes:
object --- Obrigatória. Sempre o nome de um objeto FileSystemObject ou Folder.
filename --- Obrigatória. A expressão de seqüência que identifica o arquivo a ser criado.
overwrite --- Opcional. O valor Booleano que indica se um arquivo existente pode ser sobrescrito. O valor será True se o arquivo puder ser sobrescrito; False se não puder ser sobrescrito. Se for omitido, os arquivos existentes não serão sobrescritos.
unicode --- Opcional. O valor Booleano que indica se o arquivo será criado como um arquivo Unicode ou ASCII. O valor será True se o arquivo for criado como um arquivo Unicode; False se for criado como um arquivo ASCII. Se for omitido, presume-se que seja um arquivo ASCII.
Comentários
O código a seguir ilustra como usar o método CreateTextFile para criar e abrir um arquivo de texto:
Sub CreateAfile
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\arqteste.txt", True)
a.WriteLine("Isto é um teste.")
a.Close
End Sub
Se o argumento overwrite for False ou não for fornecido para um filename já existente, ocorrerá um erro.
Método Copy
Descrição
Copia um arquivo ou pasta especificada de um local para outro.
Sintaxe
object.Copy destination[, overwrite]
A sintaxe do método Copy possui as seguintes partes:
object --- Obrigatória. Sempre o nome de um objeto File ou Folder.
destination --- Obrigatória. O destino onde o arquivo ou pasta será copiado. Não são permitidos caracteres curinga.
overwrite --- Opcional. Valor Booleano que será True (padrão) se os arquivos ou pastas existentes tiverem que ser sobrescritos; False, se não tiverem.
Comentários
Os resultados do método Copy em um File ou Folder é idêntico às operações realizadas usando FileSystemObject.CopyFile ou FileSystemObject.CopyFolder onde o arquivo ou pasta referida pelo object é passado como um argumento. Você deve notar, no entanto, que os métodos alternativos possibilitam a cópia de vários arquivos ou pastas.
Método Delete
Descrição
Exclui uma pasta ou arquivo especificado.
Sintaxe
object.Delete force
A sintaxe do método Delete possui as seguintes partes:
object --- Obrigatória. Sempre o nome de um objeto File ou Folder.
force --- Opcional. O valor Booleano será True se arquivos ou pastas com o atributo somente leitura definido forem ser excluídos; False (padrão) se não forem.
Comentários
Ocorrerá um erro se a pasta ou arquivo especificado não existir.
Os resultados do método Delete em um File ou Folder são idênticos às operações efetuadas usando FileSystemObject.DeleteFile ou FileSystemObject.DeleteFolder.
O método Delete não faz distinção entre pastas que tenham conteúdo das que não tenham. A pasta especificada será excluída não importa se ela tenha ou não conteúdo.
Assim que der eu venho postando mais métodos de FSO.
Obrigado.