Ajuda do LibreOffice 25.2
O serviço FileSystem inclui rotinas para manusear arquivos e pastas. A seguir estão alguns exemplos do que pode ser feito com este serviço:
Verificar se um arquivo existe ou não.
Criar e apagar pastas e arquivos.
Abrir caixas de diálogo para abrir/salvar arquivos.
Acessar a lista de arquivos e pastas, etc.
Os métodos do serviço FileSystem são baseados principalmente na interface UNO XSimpleFileAccess.
A tabela abaixo lista os principais parâmetros usados pela maior parte dos métodos do serviço FileSystem service.
| Parâmetro | Descrição | 
|---|---|
| FileName | Nome completo do arquivo incluindo o caminho sem o separador de pastas ao final. | 
| FolderName | Nome completo da pasta incluindo o caminho. Pode ou não conter o caractere separador de pastas ao final. | 
| Name | Último componente do Nome da Pasta ou Nome do Arquivo incluindo sua extensão. Este parâmetro é sempre expresso usando a notação nativa do sistema operacional em uso. | 
| BaseName | Último componente do Nome da Pasta ou Nome do Arquivo sem sua extensão. | 
| NamePattern | Qualquer um dos nomes acima contendo caracteres curinga em seu último componente. Os seguintes caracteres curinga são admitidos: 
 | 
O serviço FileSystem permite executar operações em múltiplos arquivo ao mesmo tempo. Ao usar padrões de nomes, scripts pode copiar, mover ou apagar múltiplos arquivos. Por outro lado, métodos internos da linguagem Basic podem manipular apenas um arquivo de cada vez.
A notação usada para expressar nomes de arquivos e pastas, tanto para argumentos como para valores retornados, é definida pela propriedade FileNaming do serviço FileSystem.
Em suma, os possíveis tipos de representação são "URL" (notação de arquivo URL), "SYS" (notação do sistema operacional) e "ANY" (padrão). Veja mais informações abaixo.
Um exemplo de notação URL é file:///C:/Documents/my_file.odt. Sempre que possível considere usar a notação URL por ser uma alternativa mais portável.
O uso do atalho "~" (til), que é comum em sistemas operacionais baseados em Linux, não é suportado para expressar caminhos para uma pasta ou nome de arquivo. Em vez de usar "~/Documents/my_file.odt" use o caminho completo "/home/user/Documents/my_file.odt".
Os trechos de código abaixo invocam o serviço FileSystem. O método BuildPath foi usado como um exemplo.
      GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
      Dim FSO As Object
      Set FSO = CreateScriptService("FileSystem")
      FSO.BuildPath(...)
    
      from scriptforge import CreateScriptService
      fs = CreateScriptService("FileSystem")
      fs.BuildPath(...)
    Os arquivos de documentos do LibreOffice são arquivos ZIP compactados que contêm os arquivos e pastas que representam o conteúdo real do documento. Enquanto o documento estiver aberto, é possível acessar esse sistema de arquivos virtual, explorar sua estrutura, bem como ler e criar arquivos e pastas.
O exemplo a seguir mostra como criar um arquivo de texto chamado myFile.txt e armazená-lo no sistema virtual de arquivos do documento.
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim oDoc As Object, fso As Object, oFile As Object
    Dim sRoot, sFile, sMyDir
    Set fso = CreateScriptService("FileSystem")
    Set oDoc = CreateScriptService("Document", ThisComponent)
    ' Obtém o caminho para a raiz do sistema de arquivos virtual em notação URL
    sRoot = oDoc.FileSystem()
    sMyDir = sRoot & "myDir"
    ' Cria a pasta "myDir" se ela ainda não existir
    If Not fso.FolderExists(sMyDir) Then
        fso.CreateFolder(sMyDir)
    End If
    ' Cria o arquivo e escreve algum texto dentro dele
    sFile = fso.BuildPath(sMyDir, "myFile.txt")
    oFile = fso.CreateTextFile(sFile)
    oFile.WriteLine("Hello!")
    oFile.CloseFile()
  
    from scriptforge import CreateScriptService
    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisComponent)
    fso = CreateScriptService("FileSystem")
    sRoot = doc.FileSystem
    sMyDir = sRoot + "myDir"
    if not fso.FolderExists(sMyDir):
        fso.CreateFolder(sMyDir)
    sFile = fso.BuildPath(sMyDir, "myFile.txt")
    oFile = fso.CreateTextFile(sFile)
    oFile.WriteLine("Hello!")
    oFile.CloseFile()
  Em geral, todos os métodos do serviço FileSystem podem ser usados para manipular arquivos no sistema virtual de arquivos do documento. No entanto, aplicam-se as seguintes restrições:
Não é possível criar arquivos na pasta raiz. Use subpastas existentes ou crie novas pastas para armazenar arquivos no sistema de arquivos do documento.
A notação FileNaming é sempre considerada como "URL".
Os métodos CompareFiles, GetFileModified, HashFile, PickFile e PickFolder não são aplicáveis.
O método GetFileLen sempre retorna zero.
O método Normalize sempre retorna a string de entrada inalterada.
O caminho para o sistema virtual de arquivos não é um endereço físico no disco rígido do computador. Ele só pode ser acessado a partir de um script LibreOffice e só existe enquanto o arquivo do documento estiver aberto.
| Nome | Somente leitura | Tipo | Descrição | 
|---|---|---|---|
| FileNaming | Não | String | Define ou retorna a notação atual para arquivos e pastas, podendo ser "ANY", "URL" ou "SYS": 
 Uma vez definida, a propriedade FileNaming permanecerá inalterada até o final da sessão LibreOffice ou até que seja definida novamente. | 
| ConfigFolder | Sim | String | Retorna a pasta de configuração do LibreOffice. | 
| ExtensionsFolder | Sim | String | Retorna a pasta onde as extensões estão instaladas. | 
| HomeFolder | Sim | String | Retorna a pasta do usuário. | 
| InstallFolder | Sim | String | Retorna a pasta de instalação do LibreOffice. | 
| TemplatesFolder | Sim | String | Retorna a pasta contendo os arquivos de modelos do sistema. | 
| TemporaryFolder | Sim | String | Retorna a pasta de arquivos temporários definida nas configurações de caminho do LibreOffice. | 
| UserTemplatesFolder | Sim | String | Retorna a pasta contendo os arquivos de modelos definidos pelo usuário. | 
Concatena um caminho para uma pasta e o nome de um arquivo e retorna o nome completo do arquivo com um separador de pastas válido. O separador de pastas é adicionado apenas se necessário.
svc.BuildPath(foldername: str, name: str): str
foldername: Caminho com o qual o parâmetro name será combinado. O caminho específico não precisa ser uma pasta existente.
name: Nome do arquivo a ser concatenado com o parâmetro foldername. Este parâmetro usa a notação do sistema operacional em uso.
      Dim FSO as Object
      Set FSO = CreateScriptService("FileSystem")
      Dim aFileName as String
      FSO.FileNaming = "URL"
      aFileName = FSO.BuildPath("file:///home/user", "sample file.odt")
      ' file:///home/user/sample%20file.odt
    
      fs = CreateScriptService("FileSystem")
      fs.FileNaming = "URL"
      aFileName = fs.BuildPath("file:///home/user", "sample file.odt")
      # file:///home/user/sample%20file.odt
    Compara dois arquivos e retorna True quando eles parecerem idênticos.
Dependendo do valor do argumento comparecontents, a comparação entre os dois arquivos pode ser baseada apenas nos atributos dos arquivos (tais como a última data de modificação), ou baseada nos conteúdos dos arquivos.
svc.CompareFiles(filename1: str, filename2: str, comparecontents: bool = False): bool
filename1, filename2: Arquivos a serem comparados.
comparecontents: Se True, os conteúdos dos arquivos são comparados (Padrão = False).
      FSO.FileNaming = "SYS"
      If FSO.CompareFiles("C:\myFile1.txt", "C:\myFile2.txt", CompareContents := False) Then
          ' ...
      End If
    
      fs.FileNaming = "SYS"
      if fs.CompareFiles(r"C:\myFile1.txt", r"C:\myFile2.txt", comparecontents = False):
          # ...
    Copia um ou mais arquivos de uma localização para outra. Retorna True se pelo menos um arquivo foi copiado, ou retorna False se um erro ocorreu.
Um erro também ocorrerá se o parâmetro source usar caracteres curinga e não corresponder a arquivo algum.
O método é interrompido imediatamente se encontrar um erro. O método não é capaz de voltar atrás ou desfazer mudanças feitas antes da ocorrência do erro.
svc.CopyFile(source: str, destination: str, overwrite: bool = True): bool
source: Pode ser um nome de arquivo (FileName) ou um padrão de nomes (NamePattern) indicando um ou mais arquivos a serem copiados.
destination: Pode ser um nome de arquivo (FileName) especificando onde o arquivo único informado no argumento source deverá ser copiado, ou um nome de pasta (FolderName) dentro do qual os múltiplos arquivos definidos em source serão copiados.
Se destination não existir, ele será criado.
Caracteres curinga não são permitidos no parâmetro destination.
overwrite: Se True (padrão), arquivos podem ser sobrescritos. O método falhará se destination for somente leitura, independente do valor especificado para overwrite.
Nos exemplos abaixo a primeira linha copia um arquivo único, ao passo que a segunda linha copia múltiplos arquivos usando caracteres coringa.
      FSO.CopyFile("C:\Documents\my_file.odt", "C:\Temp\copied_file.odt")
      FSO.CopyFile("C:\Documents\*.*", "C:\Temp\", Overwrite := False)
    
      fs.CopyFile(r"C:\Documents\my_file.odt", r"C:\Temp\copied_file.odt")
      fs.CopyFile(r"C:\Documents\*.*", r"C:\Temp", overwrite = False)
    Esteja ciente de que as subpastas e seus conteúdos não são copiados quando curingas são usados no argumento source.
Copia uma ou mais pastas de uma localização para outra. Retorna True se pelo menos uma pasta foi copiada, ou retorna False se um erro ocorreu.
Um erro também ocorrerá se o parâmetro source usar caracteres curinga e não corresponder a pasta alguma.
O método é interrompido imediatamente se encontrar um erro. O método não é capaz de voltar atrás ou desfazer mudanças feitas antes da ocorrência do erro.
svc.CopyFolder(source: str, destination: str, overwrite: bool = True): bool
source: Pode ser um nome de pasta (FolderName) ou um padrão de nomes (NamePattern) indicando uma ou mais pastas a serem copiadas.
destination: Especifica o nome da pasta (FolderName) dentro da qual a pasta única ou múltiplas pastas definidas no parâmetro source serão copiadas.
Se destination não existir, ele será criado.
Caracteres curinga não são permitidos no parâmetro destination.
overwrite: Se True (padrão), arquivos podem ser sobrescritos. O método falhará se destination for somente leitura, independente do valor especificado para overwrite.
Nos exemplos abaixo todos os arquivos, pastas e subpastas são copiados.
      ' Basic
      FSO.CopyFolder("C:\Documents\*", "C:\Temp\", Overwrite := False)
    
      # Python
      fs.CopyFolder(r"C:\Documents\*", r"C:\Temp", overwrite = False)
    Cria a pasta especificada em FolderName. Retorna True se a pasta pode ser criada com sucesso.
Se a pasta especificada tem uma pasta pai que não existe, então ela é criada.
svc.CreateFolder(foldername: str): bool
foldername: String representando a pasta a ser criada. Se a pasta já existir, uma exceção é lançada.
      ' Basic
      FSO.CreateFolder("C:\NewFolder")
    
      # Python
      fs.CreateFolder(r"C:\NewFolder")
    Cria o arquivo especificado e retorna uma instância do serviço TextStream que pode ser usada para escrever no arquivo.
O método retorna um objeto Null se um erro ocorreu.
svc.CreateTextFile(filename: str, overwrite: bool = True, encoding: str = 'UTF-8'): svc
filename: Nome do arquivo a ser criado.
overwrite: Valor booleano que determina se filename pode ser sobrescrito (Padrão = True).
encoding: Codificação de caracteres a ser usada. A codificação padrão é "UTF-8".
      Dim myFile As Object
      FSO.FileNaming = "SYS"
      Set myFile = FSO.CreateTextFile("C:\Temp\ThisFile.txt", Overwrite := True)
    
      fs.FileNaming = "SYS"
      myFile = fs.CreateTextFile(r"C:\Temp\ThisFile.txt", overwrite = True)
    Para saber mais sobre os nomes dos conjuntos de caracteres, visite a página IANA's Character Set (página somente no inglês). Note que o LibreOffice não implementa todos os conjuntos de caracteres existentes.
Apaga um ou mais arquivos. Retorna True se ao menos um arquivo pode ser apagado ou False se um erro ocorreu.
Um erro também ocorrerá se o parâmetro filename usar caracteres curinga e não corresponder a arquivo algum.
Os arquivos a serem apagados não podem ser somente leitura.
O método é interrompido imediatamente se encontrar um erro. O método não é capaz de voltar atrás ou desfazer mudanças feitas antes da ocorrência do erro.
svc.DeleteFile(filename: str): bool
filename: Pode ser um nome de arquivo (FileName) ou um padrão de nomes (NamePattern) indicando um ou mais arquivos a serem apagados.
Nos exemplos abaixo apenas arquivos são apagados. Subpastas não são apagadas.
      ' Basic
      FSO.DeleteFile("C:\Temp\*.docx")
    
      # Python
      fs.DeleteFile(r"C:\Temp\*.docx")
    Apaga uma ou mais pastas. Retorna True se ao menos uma pasta foi apagada ou False se um erro ocorreu.
Um erro também ocorrerá se o parâmetro foldername usar caracteres curinga e não corresponder a pasta alguma.
As pastas a serem apagadas não podem ser somente leitura.
O método é interrompido imediatamente se encontrar um erro. O método não é capaz de voltar atrás ou desfazer mudanças feitas antes da ocorrência do erro.
svc.DeleteFolder(foldername: str): bool
foldername: Pode ser um nome de pasta (FolderName) ou um padrão de nomes (NamePattern) indicando uma ou mais pastas a serem apagadas.
Nos exemplos a seguir apenas pastas e seus conteúdos são apagados. Arquivos na pasta pai "C:\Temp" não são apagados.
      ' Basic
      FSO.DeleteFolder("C:\Temp\*")
    
      # Python
      fs.DeleteFolder(r"C:\Temp\*")
    Retorna uma string contendo o diretório onde a extensão especificada está instalada.
O valor atual da propriedade SF_FileSystem.FileNaming é usado para determinar a notação da string retornada.
Use a propriedade Extensions do serviço Platform para obter um Array de strings contendo as IDs de todas as extensões instaladas.
svc.ExtensionFolder(extension: str): str
extension: String com a ID da extensão.Se a extensão não estiver instalada, uma exceção é lançada.
Os exemplos abaixo em Basic e Python retornam a pasta onde a extensão APSO está instalada.
      ' Basic
      sFolder = FSO.ExtensionFolder("apso.python.script.organizer")
      ' file:///home/username/.config/libreoffice/4/user/uno_packages/cache/uno_packages/lu10833wz3u2i.tmp_/apso_1_2_7.oxt
    
      # Python
      sFolder = fs.ExtensionFolder("apso.python.script.organizer")
    Retorna True se um dado nome de arquivo é válido e existe, caso contrário o método retorna False.
Se o parâmetro filename for na verdade um nome de pasta existente, o método retorna False.
svc.FileExists(filename: str): bool
filename: String representando o arquivo a ser testado.
      FSO.FileNaming = "SYS"
      If FSO.FileExists("C:\Documents\my_file.odt") Then
          '...
      End If
    
      fs.FileNaming = "SYS"
      if fs.FileExists(r"C:\Documents\my_file.odt"):
          # ...
    Retorna um Array indexado em zero com os arquivos armazenados em uma pasta. Cada entrada no Array é uma String contendo o caminho completo e o nome do arquivo.
Se o argumento foldername especificar uma pasta que não existe, uma exceção será lançada.
A lista resultante pode ser filtrada com caracteres curinga.
svc.Files(foldername: str, filter: str = '', includesubfolders: bool = False): str[0..*]
foldername: String representando uma pasta. A pasta deve existir. Este argumento não pode designar um arquivo.
filter: String contendo caracteres curinga ("?" e "*") que serão aplicados à lista de arquivos resultante (Padrão = "").
includesubfolders: Defina este argumento como True para incluir o conteúdo das subpastas (Padrão = False).
      Dim filesList As Variant, file As String
      FSO.FileNaming = "SYS"
      ' Retorna todos os arquivos que correspondem ao filtro "*.txt", incluindo arquivos em subpastas
      filesList = FSO.Files("/home/user/", "*.txt", IncludeSubfolders := True)
      For Each file In filesList
          ' ...
      Next file
    
      fs.FileNaming = "SYS"
      filesList = fs.Files("/home/user/", "*.txt", includesubfolders = True)
      for file in fileList:
          # ...
    Retorna True se o nome de pasta especificado em FolderName é válido e existe, caso contrário o método retorna False.
Se o parâmetro foldername for na verdade um nome de arquivo existente, o método retorna False.
svc.FolderExists(foldername: str): bool
foldername: String representando a pasta a ser testada.
      FSO.FileNaming = "SYS"
      If FSO.FolderExists("C:\Documents\Thesis") Then
          '...
      End If
    
      fs.FileNaming = "SYS"
      if fs.FolderExists(r"C:\Documents\Thesis")
          # ...
    Retorna o BaseName (igual ao último componente) de uma pasta ou nome de arquivo, seu sua extensão.
O método não verifica se a pasta ou arquivo especificado existe.
svc.GetBaseName(filename: str): str
filename: String representando o nome do arquivo e seu caminho.
Nos exemplos abaixo, a primeira chamada do método GetBaseName corresponde a uma pasta, então a função retorna o último componente do caminho. A segunda chamada recebe um nome de arquivo como entrada, então o nome do arquivo é retornado sem sua extensão.
      MsgBox FSO.GetBaseName("/home/user/Documents") ' "Documents"
      MsgBox FSO.GetBaseName("/home/user/Documents/my_file.ods") ' "my_file"
    
      bas = CreateScriptService("Basic")
      bas.MsgBox(fs.GetBaseName("/home/user/Documents")) # "Documents"
      bas.MsgBox(fs.GetBaseName("/home/user/Documents/my_file.ods")) # "my_file"
    Retorna a extensão de um nome de arquivo ou pasta sem o caractere "." ponto.
O método não verifica a existência da pasta ou arquivo especificado.
Se o método for aplicado a uma pasta ou arquivo que não possui extensão, então uma String vazia é retornada.
svc.GetExtension(filename: str): str
filename: String representando o nome do arquivo e seu caminho.
      ' Basic
      ext = FSO.GetExtension("C:\Windows\Notepad.exe")  ' "exe"
    
      # Python
      ext = fs.GetExtension(r"C:\Windows\Notepad.exe")  # "exe"
    A função interna Basic FileLen retorna o número de bytes contidos em um arquivo como um valor do tipo Long, ou seja, com até 2GB.
O método GetFileLen consegue manipular arquivos com tamanhos maiores pois retorna um valor do tipo Currency.
svc.GetFileLen(filename: str): num
filename: String representando um arquivo existente.
      Dim fLen As Currency
      FSO.FileNaming = "SYS"
      fLen = FSO.GetFileLen("C:\pagefile.sys")
    
      fs.FileNaming = "SYS"
      fLen = fs.GetFileLen(r"C:\pagefile.sys")
    Retorna a última data de modificação de um dado arquivo.
svc.GetFileModified(filename: str): datetime
filename: String representando um arquivo existente.
      Dim aDate As Date
      FSO.FileNaming = "SYS"
      aDate = FSO.GetFileModified("C:\Documents\my_file.odt")
    
      fs.FileNaming = "SYS"
      aDate = FSO.GetFileModified(r"C:\Documents\my_file.odt")
    Retorna o último componente de um arquivo ou pasta usando o formato nativo do sistema operacional em uso.
O método não verifica se a pasta ou arquivo especificado existe.
svc.GetName(filename: str): str
filename: String representando o nome do arquivo e seu caminho.
      ' Basic
      a = FSO.GetName("C:\Windows\Notepad.exe")  ' Notepad.exe
    
      # Python
      a = fs.GetName(r"C:\Windows\Notepad.exe")  # Notepad.exe
    Retorna uma String contendo o nome da pasta pai de um dado nome de arquivo ou pasta.
O método não verifica se a pasta ou arquivo especificado existe.
svc.GetParentFolderName(filename: str): str
filename: String com o nome do arquivo ou pasta a ser analisado.
      ' Basic
      a = FSO.GetParentFolderName("C:\Windows\Notepad.exe")  ' C:\Windows\
    
      # Python
      a = fs.GetParentFolderName(r"C:\Windows\Notepad.exe")  # C:\Windows\
    Retorna um nome de arquivo temporário gerado aleatoriamente que pode ser útil para executar operações que requerem arquivos temporários.
Por padrão, o nome do arquivo retornado não possui extensão. Use o parâmetro extension para especificar a extensão do nome do arquivo a ser gerado.
A parte da pasta da string retornada é a pasta temporária do sistema.
O método não cria o arquivo temporário.
svc.GetTempName(extension: str): str
extension: A extensão do nome do arquivo temporário (Padrão = "").
      Dim fName As String
      FSO.FileNaming = "SYS"
      fName = FSO.GetTempName(Extension := "txt")
      ' "/tmp/SF_574068.txt"
    
      fs.FileNaming = "SYS"
      fName = FSO.GetTempName(extension = "txt")
      # "/tmp/SF_574068.txt"
    Funções hash são usadas por alguns algoritmos criptográficos, em assinaturas digitais, códigos de autenticação de mensagens, detecção de fraudes, impressões digitais, verificação de integridade de mensagens, tabelas hash, armazenamento de senhas e muito mais.
O método HashFile retorna o resultado da função hash aplicada em um dado arquivo usando o algoritmo escolhido. O valor retornado é uma String com caracteres hexadecimais minúsculos.
Os algoritmos hash suportados são: MD5, SHA1, SHA224, SHA256, SHA384 e SHA512.
svc.HashFile(filename: str, algorithm: str): str
filename: String representando um arquivo existente.
algorithm: Um dos algoritmos suportados.
      ' Basic
      sHash = FSO.HashFile("C:\pagefile.sys", "MD5")
    
      # Python
      sHash = FSO.HashFile(r"C:\pagefile.sys", "MD5")
    Move um ou mais arquivos de uma localização para outra. Retorna True se pelo menos um arquivo foi movido, ou retorna False se um erro ocorreu.
Um erro também ocorrerá se o parâmetro source usar caracteres curinga e não corresponder a arquivo algum.
O método é interrompido imediatamente se encontrar um erro. O método não é capaz de voltar atrás ou desfazer mudanças feitas antes da ocorrência do erro.
svc.MoveFile(source: str, destination: str): bool
source: Pode ser um nome de arquivo (FileName) ou um padrão de nomes (NamePattern) indicando um ou mais arquivos a serem movidos.
destination: Se source for um nome de arquivo (FileName) então este parâmetro indica o novo caminho e nome do arquivo que foi movido.
Se a operação de movimentação envolver múltiplos arquivos, então o parâmetro destination deve ser um nome de pasta. Se a pasta não existir, ela será criada.
Se source e destination possuírem a mesma pasta pai, o método renomeará source.
Caracteres curinga não são permitidos no parâmetro destination.
Nos exemplos a seguir apenas arquivos são movidos. Subpastas não são movidas.
      ' Basic
      FSO.MoveFile("C:\Temp1\*.*", "C:\Temp2")
    
      # Python
      fs.MoveFile(r"C:\Temp1\*.*", r"C:\Temp2")
    Move uma ou mais pastas de uma localização para outra. Retorna True se pelo menos uma pasta foi movida, ou retorna False se um erro ocorreu.
Um erro também ocorrerá se o parâmetro source usar caracteres curinga e não corresponder a pasta alguma.
O método é interrompido imediatamente se encontrar um erro. O método não é capaz de voltar atrás ou desfazer mudanças feitas antes da ocorrência do erro.
svc.MoveFolder(source: str, destination: str): bool
source: Pode ser um nome de pasta (FolderName) ou um padrão de nomes (NamePattern) indicando uma ou mais pastas a serem movidas.
destination: Se a operação de movimentação envolver uma pasta única, então o parâmetro destination será considerado como o nome e caminho da pasta movida, portanto não deve existir.
Se múltiplas pastas estão sendo movidas, então destination define para onde as pastas em source serão movidas. Se a pasta destination não existir, ela será criada.
Caracteres curinga não são permitidos no parâmetro destination.
      ' Basic
      FSO.MoveFolder("C:\Temp1\*", "C:\Temp2")
    
      # Python
      fs.MoveFolder(r"C:\Temp1\*", r"C:\Temp2")
    Retorna uma string contendo o nome do caminho normalizado, recolhendo separadores redundantes e referências de nível superior.
Por exemplo, os nomes de caminho A//B, A/B/, A/./B e A/foo/ ../B são todos normalizados para A/B.
No Windows, as barras "/" são convertidas em barras invertidas "\".
O valor atual da propriedade SF_FileSystem.FileNaming é usado para determinar a notação do argumento filename, bem como o formato da string retornada.
svc.Normalize(filename: str): str
filename: uma string que representa um nome de caminho válido. O arquivo ou diretório representado por este argumento pode não existir.
    FSO.FileNaming = "URL"
    ' file:///home/user/Documents
    normPath = FSO.Normalize("file:///home/user/Documents/")
    ' file:///home/user/Documents
    normPath = FSO.Normalize("file:///home//user//Documents/")
    ' file:///home/user
    normPath = FSO.Normalize("file:///home//user//Documents/../")
  
    fs.FileNaming = "URL"
    normPath = fs.Normalize("file:///home/user/Documents/")
    normPath = fs.Normalize("file:///home//user//Documents/")
    normPath = fs.Normalize("file:///home//user//Documents/../")
  Abre um arquivo e retorna um objeto TextStream que pode ser usado para ler, escrever ou acrescentar valores a um arquivo de texto.
Note que o método não verifica se um dado arquivo é realmente um arquivo texto.
Este método retorna um objeto Null (em Basic) ou None (em Python) se algum erro ocorreu.
svc.OpenTextFile(filename: str, iomode: int = 1, create: bool = False, encoding: str = 'UTF-8'): svc
filename: Especifica o arquivo a ser aberto.
iomode: Indica o modo de entrada e saída. Pode ser uma de três constantes: svc.ForReading (padrão), svc.ForWriting, ou svc.ForAppending.
create: Valor booleano que indica se um novo arquivo pode ser criado se o nome de arquivo especificado em filename não existir:
Se True um novo arquivo e suas pastas pais são criadas se não existirem ainda.
Se False então novos arquivos não são criados (padrão).
encoding: Codificação de caracteres a ser usada. A codificação padrão é "UTF-8".
      Dim myFile As Object
      FSO.FileNaming = "SYS"
      Set myFile = FSO.OpenTextFile("C:\Temp\ThisFile.txt", FSO.ForReading)
      If Not IsNull(myFile) Then
          ' ...
      End If
    
      fs.FileNaming = "SYS"
      myFile = fs.OpenTextFile(r"C:\Temp\ThisFile.txt", fs.ForReading)
      if myFile is not None:
          # ...
    Mostra uma caixa de diálogo para abrir ou salvar arquivos.
Se o modo SAVE estiver definido e o arquivo escolhido existir, um alerta será apresentado.
svc.PickFile(defaultfile: str ='', mode: str = 'OPEN', filter: str = ''): str
defaultfile: Este argumento é uma String composta por um nome de pasta e arquivo:
A parte referente à pasta indica qual pasta será mostrada quando o diálogo for aberto (padrão = última pasta selecionada).
A parte referente ao arquivo especifica o nome do arquivo padrão a ser aberto ou salvo.
mode: Uma string contendo o valor "OPEN" (para arquivos de entrada) ou "SAVE" (para arquivos de saída). O valor padrão é "OPEN".
filter: Usado para definir a extensão dos arquivos mostrados quando o diálogo é aberto (Padrão = sem filtro).
Os exemplos abaixo abrem o selecionador de arquivos com o filtro "txt" aplicado.
      ' Basic
      aFile = FSO.PickFile("C:\Documents", "OPEN", "txt")
    
      # Python
      aFile = fs.PickFile(r"C:\Documents", "OPEN", "txt")
    Abre uma caixa de diálogo para escolher uma pasta
svc.PickFolder(defaultfolder: str = '', freetext: str = ''): str
defaultfolder: String contendo o nome da pasta que será apresentada quando a caixa de diálogo for aberta (Padrão = última pasta selecionada).
freetext: Texto a ser mostrado na caixa de diálogo (Padrão = "").
      ' Basic
      aFolder = FSO.PickFolder("C:\Documents", "Escolha uma pasta ou pressiona Cancelar")
    
      # Python
      aFolder = fs.PickFolder(r"C:\Documents", "Escolha uma pasta ou pressione Cancelar")
    Retorna um array de strings indexado em zero com os nomes das pastas armazenadas em um dado foldername.
A lista pode ser filtrada usando caracteres curinga.
svc.SubFolders(foldername: str, filter: str = '', includesubfolders: bool = False): str[0..*]
foldername: String representando uma pasta. A pasta deve existir. foldername não pode designar um arquivo.
filter: String contendo caracteres curinga ("?" e "*") que serão aplicados à lista de pastas resultante (Padrão = "").
includesubfolders: Defina este argumento como True para incluir o conteúdo das subpastas (Padrão = False).
      Dim folderList As Variant, folder As String
      FSO.FileNaming = "SYS"
      folderList = FSO.SubFolders("/home/user/")
      For Each folder In folderList
          ' ...
      Next folder
    
      fs.FileNaming = "SYS"
      folderList = fs.SubFolders("/home/user/")
      for folder in folderList:
          # ...