Contenido
Índice 🔎︎

# Servicio ScriptForge.FileSystem

The FileSystem service includes routines to handle files and folders. Next are some examples of the features provided by this service:

- Verify whether a file or folder exists.

- Create and delete folders and files.

- Launch dialog boxes to open/save files.

- Access the list of files in a folder, etc.

The methods in the FileSystem service are mostly based on the XSimpleFileAccess UNO interface.

## Definiciones

La tabla de más abajo enumera los principales parámetros que utiliza la mayoría de los métodos del servicio FileSystem.

Parámetro | Descripción
--- | ---
FileName | El nombre completo del archivo, la ruta incluida, sin esta incluir el separador de ruta al final.
FolderName | El nombre completo de la carpeta, ruta incluida, con o sin el separador de ruta final.
Name | The last component of the Folder Name or File Name including its extension. This parameter is always expressed using the native format of the operating system.
BaseName | The last component of the Folder Name or File Name without its extension.
NamePattern | Any of the above names containing wildcards in its last component. Admitted wildcards are: «?» representa cualquier carácter individual «*» representa cero, uno o múltiples caracteres

The FileSystem service allows to perform operations over multiple files at the same time. By using name patterns, user scripts can copy, move or delete multiple files. Conversely, Basic built-in methods can only handle single files.

### Notación para dar nombre a los archivos

The notation used to express file and folder names, both for arguments and returned values, is defined by the FileNaming property of the FileSystem service.

In short, the possible representation types are "URL" (URL file notation), "SYS" (operating system notation) and "ANY" (default). See more information below.

Un ejemplo de notación de URL es file:///C:/Documents/mi_archivo.odt. Considere, siempre que sea posible, utilizar la notación de URL, dado que es una alternativa más portátil.

The use of the shortcut "~" (tilde), which is common in Linux-based operating systems, is not supported to express a path to a folder and file name. Instead of using "~/Documents/my_file.odt" use the full path "/home/user/Documents/my_file.odt".

## Invocación del servicio

The following code snippet invokes the FileSystem service. The method BuildPath was used as an example.

##### En BASIC

          GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
          Dim FSO As Object
          Set FSO = CreateScriptService("FileSystem")
          FSO.BuildPath(...)

##### En Python

          from scriptforge import CreateScriptService
          fs = CreateScriptService("FileSystem")
          fs.BuildPath(...)

## Propiedades

Nombre | De solo lectura | Tipo | Descripción
--- | --- | --- | ---
FileNaming | No | String | Establece o devuelve la notación actual de archivos y carpetas, la cual puede ser «ANY», «URL» o «SYS»: "ANY": (default) the methods of the FileSystem service accept both URL and current operating system's notation for input arguments but always return URL strings. "URL": the methods of the FileSystem service expect URL notation for input arguments and return URL strings. "SYS": the methods of the FileSystem service expect current operating system's notation for both input arguments and return strings. Once set, the FileNaming property remains unchanged either until the end of the LibreOffice session or until it is set again.
ConfigFolder | Sí | String | Devuelve la carpeta de configuración de LibreOffice.
ExtensionsFolder | Sí | String | Devuelve la carpeta en que se instalan las extensiones.
HomeFolder | Sí | String | Devuelve la carpeta personal del usuario.
InstallFolder | Sí | String | Devuelve la carpeta de instalación de LibreOffice.
TemplatesFolder | Sí | String | Devuelve la carpeta que contiene los archivos de plantillas de sistema.
TemporaryFolder | Sí | String | Devuelve la carpeta de archivos temporales definida en la configuración de rutas de LibreOffice.
UserTemplatesFolder | Sí | String | Returns the folder containing the user-defined template files.

Lista de métodos en el servicio FileSystem
BuildPath CompareFiles CopyFile CopyFolder CreateFolder CreateTextFile DeleteFile DeleteFolder ExtensionFolder | FileExists Files FolderExists GetBaseName GetExtension GetFileLen GetFileModified GetName GetParentFolderName | GetTempName HashFile MoveFile MoveFolder Normalize OpenTextFile PickFile PickFolder SubFolders

## BuildPath

Joins a folder path and the name of a file and returns the full file name with a valid path separator. The path separator is added only if necessary.

### Sintaxis:

svc.BuildPath(foldername: str, name: str): str

### Parámetros:

foldername: The path with which name will be combined. The specified path does not need to be an existing folder.

name: The name of the file to be appended to foldername. This parameter uses the notation of the current operating system.

### Ejemplo:

##### En BASIC

          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

##### En Python

          fs = CreateScriptService("FileSystem")
          fs.FileNaming = "URL"
          aFileName = fs.BuildPath("file:///home/user", "sample file.odt")
          # file:///home/user/sample%20file.odt

## CompareFiles

Compares two files and returns True when they seem identical.

Depending on the value of the comparecontents argument, the comparison between both files can be either based only on file attributes (such as the last modified date), or based on the file contents.

### Sintaxis:

svc.CompareFiles(filename1: str, filename2: str, comparecontents: bool = False): bool

### Parámetros:

filename1, filename2: The files to compare.

comparecontents: When True, the contents of the files are compared (default = False).

### Ejemplo:

##### En BASIC

          FSO.FileNaming = "SYS"
          If FSO.CompareFiles("C:\myFile1.txt", "C:\myFile2.txt", CompareContents := False) Then
              ' ...
          End If

##### En Python

          fs.FileNaming = "SYS"
          if fs.CompareFiles(r"C:\myFile1.txt", r"C:\myFile2.txt", comparecontents = False):
              # ...

## CopyFile

Copies one or more files from one location to another. Returns True if at least one file has been copied or False if an error occurred.

An error will also occur if the source parameter uses wildcard characters and does not match any files.

El método se para inmediatamente después de que encuentra un error. El método no se revierte ni se deshacen los cambios efectuados antes de ocurrir el error.

### Sintaxis:

svc.CopyFile(source: str, destination: str, overwrite: bool = True): bool

### Parámetros:

source: It can be a FileName or a NamePattern indicating one or more files to be copied.

destination: It can be either a FileName specifying where the single source file is to be copied, or a FolderName into which the multiple files from source are to be copied.

- If destination does not exist, it is created.

- Wildcard characters are not allowed in destination.

overwrite: If True (default), files may be overwritten. The method will fail if destination is readonly, regardless of the value specified in overwrite.

### Ejemplo:

In the examples below the first line copies a single file whereas the second line copies multiple files using wildcards.

##### En BASIC

          FSO.CopyFile("C:\Documents\my_file.odt", "C:\Temp\copied_file.odt")
          FSO.CopyFile("C:\Documents\*.*", "C:\Temp\", Overwrite := False)

##### En Python

          fs.CopyFile(r"C:\Documents\my_file.odt", r"C:\Temp\copied_file.odt")
          fs.CopyFile(r"C:\Documents\*.*", r"C:\Temp", overwrite = False)

Conviene tener presente que las subcarpetas y sus contenidos no se copian cuando se utilizan comodines en el argumento source.

## CopyFolder

Copies one or more folders from one location to another. Returns True if at least one folder has been copied or False if an error occurred.

An error will also occur if the source parameter uses wildcard characters and does not match any folders.

El método se para inmediatamente después de que encuentra un error. El método no se revierte ni se deshacen los cambios efectuados antes de ocurrir el error.

### Sintaxis:

svc.CopyFolder(source: str, destination: str, overwrite: bool = True): bool

### Parámetros:

source: It can be a FolderName or a NamePattern indicating one or more folders to be copied.

destination: Specifies the FolderName into which the single or multiple folders defined in source are to be copied.

- If destination does not exist, it is created.

- Wildcard characters are not allowed in destination.

overwrite: If True (default), files may be overwritten. The method will fail if destination is readonly, regardless of the value specified in overwrite.

### Ejemplo:

En los ejemplos siguientes, todos los archivos, carpetas y subcarpetas se copian.

          ' Basic
          FSO.CopyFolder("C:\Documents\*", "C:\Temp\", Overwrite := False)

          # Python
          fs.CopyFolder(r"C:\Documents\*", r"C:\Temp", overwrite = False)

## CreateFolder

Creates the specified FolderName. Returns True if the folder could be successfully created.

If the specified folder has a parent folder that does not exist, it is created.

### Sintaxis:

svc.CreateFolder(foldername: str): bool

### Parámetros:

foldername: A string representing the folder to be created. If the folder already exists, an exception will be raised.

### Ejemplo:

          ' Basic
          FSO.CreateFolder("C:\NewFolder")

          # Python
          fs.CreateFolder(r"C:\NewFolder")

## CreateTextFile

Creates a specified file and returns a TextStream service instance that can be used to write to the file.

The method returns a Null object if an error occurred.

### Sintaxis:

svc.CreateTextFile(filename: str, overwrite: bool = True, encoding: str = 'UTF-8'): svc

### Parámetros:

filename: The name of the file to be created.

overwrite: Boolean value that determines if filename can be overwritten (default = True).

encoding: The character set to be used. The default encoding is "UTF-8".

### Ejemplo:

##### En BASIC

          Dim myFile As Object
          FSO.FileNaming = "SYS"
          Set myFile = FSO.CreateTextFile("C:\Temp\ThisFile.txt", Overwrite := True)

##### En Python

          fs.FileNaming = "SYS"
          myFile = fs.CreateTextFile(r"C:\Temp\ThisFile.txt", overwrite = True)

Para conocer más sobre los nombres de los conjuntos de caracteres, consulte la página Conjuntos de caracteres de la IANA (en inglés). Conviene saber que LibreOffice no admite todos los conjuntos de caracteres existentes.

## DeleteFile

Elimina uno o más archivos. Devuelve True si al menos un archivo se ha eliminado, o bien, False, si se ha producido un error.

An error will also occur if the filename parameter uses wildcard characters and does not match any files.

The files to be deleted must not be readonly.

El método se para inmediatamente después de que encuentra un error. El método no se revierte ni se deshacen los cambios efectuados antes de ocurrir el error.

### Sintaxis:

svc.DeleteFile(filename: str): bool

### Parámetros:

filename: It can be a FileName or a NamePattern indicating one or more files to be deleted.

### Ejemplo:

In the examples below only files are deleted, subfolders are not deleted.

          ' Basic
          FSO.DeleteFile("C:\Temp\*.docx")

          # Python
          fs.DeleteFile(r"C:\Temp\*.docx")

## DeleteFolder

Deletes one or more folders. Returns True if at least one folder has been deleted or False if an error occurred.

An error will also occur if the foldername parameter uses wildcard characters and does not match any folders.

Las carpetas que se eliminarán no deben ser de solo lectura.

El método se para inmediatamente después de que encuentra un error. El método no se revierte ni se deshacen los cambios efectuados antes de ocurrir el error.

### Sintaxis:

svc.DeleteFolder(foldername: str): bool

### Parámetros:

foldername: It can be a FolderName or a NamePattern indicating one or more folders to be deleted.

### Ejemplo:

In the examples below only folders and their contents are deleted. Files in the parent folder "C:\Temp" are not deleted.

          ' Basic
          FSO.DeleteFolder("C:\Temp\*")

          # Python
          fs.DeleteFolder(r"C:\Temp\*")

## ExtensionFolder

Returns a string containing the folder where the specified extension package is installed.

El valor actual de la propiedad SF_FileSystem.FileNaming se utiliza para determinar la notación de la cadena devuelta.

Use the property Extensions from the Platform service to get string array with the IDs of all installed extensions.

### Sintaxis:

svc.ExtensionFolder(extension: str): str

### Parámetros:

extension: A string value with the ID of the extension. If the extension is not installed, an exception is raised.

### Ejemplo:

The examples below in Basic and Python return the folder where the APSO extension is installed.

          ' 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")

## FileExists

Devuelve True si un nombre de archivo indicado es válido y existe; si no, el método devuelve False.

If the filename parameter is actually an existing folder name, the method returns False.

### Sintaxis:

svc.FileExists(filename: str): bool

### Parámetros:

filename: A string representing the file to be tested.

### Ejemplo:

##### En BASIC

          FSO.FileNaming = "SYS"
          If FSO.FileExists("C:\Documents\my_file.odt") Then
              '...
          End If

##### En Python

          fs.FileNaming = "SYS"
          if fs.FileExists(r"C:\Documents\my_file.odt"):
              # ...

## Files

Returns a zero-based array of the files stored in a given folder. Each entry in the array is a string containing the full path and file name.

If the argument foldername specifies a folder that does not exist, an exception is raised.

Es posible filtrar la lista resultante mediante comodines.

### Sintaxis:

svc.Files(foldername: str, filter: str = ''): str[0..*]

### Parámetros:

foldername: A string representing a folder. The folder must exist. This argument must not designate a file.

filter: A string containing wildcards ("?" and "*") that will be applied to the resulting list of files (default = "").

### Ejemplo:

##### En BASIC

          Dim filesList As Variant, file As String
          FSO.FileNaming = "SYS"
          filesList = FSO.Files("/home/user/", "*.txt")
          For Each file In filesList
              ' ...
          Next file

##### En Python

          fs.FileNaming = "SYS"
          filesList = fs.Files("/home/user/", "*.txt")
          for file in fileList:
              # ...

## FolderExists

Devuelve True si el FolderName especificado es válido y existe; si no, el método devuelve False.

If the foldername parameter is actually an existing file name, the method returns False.

### Sintaxis:

svc.FolderExists(foldername: str): bool

### Parámetros:

foldername: A string representing the folder to be tested.

### Ejemplo:

##### En BASIC

          FSO.FileNaming = "SYS"
          If FSO.FolderExists("C:\Documents\Thesis") Then
              '...
          End If

##### En Python

          fs.FileNaming = "SYS"
          if fs.FolderExists(r"C:\Documents\Thesis")
              # ...

## GetBaseName

Returns the BaseName (equal to the last component) of a folder or file name, without its extension.

El método no comprueba si existe el archivo o la carpeta que se especificó.

### Sintaxis:

svc.GetBaseName(filename: str): str

### Parámetros:

filename: A string representing the file name and its path.

### Ejemplo:

In the examples below, the first GetBaseName method call corresponds to a folder, so the function returns the last component of the path. The second call receives a file name as input, so the name of the file is returned without its extension.

##### En BASIC

          MsgBox FSO.GetBaseName("/home/user/Documents") ' "Documents"
          MsgBox FSO.GetBaseName("/home/user/Documents/my_file.ods") ' "my_file"

##### En Python

          bas = CreateScriptService("Basic")
          bas.MsgBox(fs.GetBaseName("/home/user/Documents")) # "Documents"
          bas.MsgBox(fs.GetBaseName("/home/user/Documents/my_file.ods")) # "my_file"

## GetExtension

Returns the extension part of a file or folder name without the dot "." character.

El método no comprueba la existencia del archivo o la carpeta que se haya especificado.

If this method is applied to a folder name or to a file without an extension, then an empty string is returned.

### Sintaxis:

svc.GetExtension(filename: str): str

### Parámetros:

filename: A string representing the file name and its path.

### Ejemplo:

          ' Basic
          ext = FSO.GetExtension("C:\Windows\Notepad.exe")  ' "exe"

          # Python
          ext = fs.GetExtension(r"C:\Windows\Notepad.exe")  # "exe"

## GetFileLen

The builtin FileLen Basic function returns the number of bytes contained in a file as a Long value, i.e. up to 2GB.

The GetFileLen method can handle files with much larger sizes by returning a Currency value.

### Sintaxis:

svc.GetFileLen(filename: str): num

### Parámetros:

filename: A string representing an existing file.

### Ejemplo:

##### En BASIC

          Dim fLen As Currency
          FSO.FileNaming = "SYS"
          fLen = FSO.GetFileLen("C:\pagefile.sys")

##### En Python

          fs.FileNaming = "SYS"
          fLen = fs.GetFileLen(r"C:\pagefile.sys")

## GetFileModified

Devuelve la fecha de última modificación de un archivo determinado.

### Sintaxis:

svc.GetFileModified(filename: str): datetime

### Parámetros:

filename: A string representing an existing file.

### Ejemplo:

##### En BASIC

          Dim aDate As Date
          FSO.FileNaming = "SYS"
          aDate = FSO.GetFileModified("C:\Documents\my_file.odt")

##### En Python

          fs.FileNaming = "SYS"
          aDate = FSO.GetFileModified(r"C:\Documents\my_file.odt")

## GetName

Returns the last component of a file or folder name in native operating system format.

El método no comprueba si existe el archivo o la carpeta que se especificó.

### Sintaxis:

svc.GetName(filename: str): str

### Parámetros:

filename: A string representing the file name and its path.

### Ejemplo:

          ' Basic
          a = FSO.GetName("C:\Windows\Notepad.exe")  ' Notepad.exe

          # Python
          a = fs.GetName(r"C:\Windows\Notepad.exe")  # Notepad.exe

## GetParentFolderName

Returns a string containing the name of the parent folder of a specified file or folder name.

El método no comprueba si existe el archivo o la carpeta que se especificó.

### Sintaxis:

svc.GetParentFolderName(filename: str): str

### Parámetros:

filename: A string with the file or folder name to be analyzed.

### Ejemplo:

          ' Basic
          a = FSO.GetParentFolderName("C:\Windows\Notepad.exe")  ' C:\Windows\

          # Python
          a = fs.GetParentFolderName(r"C:\Windows\Notepad.exe")  # C:\Windows\

## GetTempName

Returns a randomly generated temporary file name that is useful for performing operations that require a temporary file.

The returned file name does not have any suffix. The folder part of the returned string is the system's temporary folder.

El método no crea el archivo temporal.

### Sintaxis:

svc.GetTempName(): str

### Ejemplo:

##### En BASIC

          Dim fName As String
          FSO.FileNaming = "SYS"
          fName = FSO.GetTempName() & ".txt"
          ' "/tmp/SF_574068.txt"

##### En Python

          fs.FileNaming = "SYS"
          fName = FSO.GetTempName() + ".txt"
          # "/tmp/SF_574068.txt"

## HashFile

Hash functions are used by some cryptographic algorithms, in digital signatures, message authentication codes, fraud detection, fingerprints, checksums (message integrity check), hash tables, password storage and much more.

The HashFile method returns the result of a hash function, applied on a given file and using a specified algorithm. The returned value is a string of lower-case hexadecimal digits.

The hash algorithms supported are: MD5, SHA1, SHA224, SHA256, SHA384 and SHA512.

### Sintaxis:

svc.HashFile(filename: str, algorithm: str): str

### Parámetros:

filename: A string representing an existing file.

algorithm: One of the supported algorithms.

### Ejemplo:

          ' Basic
          sHash = FSO.HashFile("C:\pagefile.sys", "MD5")

          # Python
          sHash = FSO.HashFile(r"C:\pagefile.sys", "MD5")

## MoveFile

Moves one or more files from one location to another. Returns True if at least one file has been moved or False if an error occurred.

An error will also occur if the source parameter uses wildcard characters and does not match any files.

El método se para inmediatamente después de que encuentra un error. El método no se revierte ni se deshacen los cambios efectuados antes de ocurrir el error.

### Sintaxis:

svc.MoveFile(source: str, destination: str): bool

### Parámetros:

source: It can be a FileName or NamePattern to designate one or more files to be moved.

destination: If source is a FileName then this parameter indicates the new path and file name of the moved file.

If the move operation involves multiple files, then destination must be a folder name. If it does not exist, it is created.

If source and destination have the same parent folder, the method will rename the source.

Wildcard characters are not allowed in destination.

### Ejemplo:

En los ejemplos siguientes se mueven solo los archivos, no las subcarpetas.

          ' Basic
          FSO.MoveFile("C:\Temp1\*.*", "C:\Temp2")

          # Python
          fs.MoveFile(r"C:\Temp1\*.*", r"C:\Temp2")

## MoveFolder

Moves one or more folders from one location to another. Returns True if at least one folder has been moved or False if an error occurred.

An error will also occur if the source parameter uses wildcard characters and does not match any folders.

El método se para inmediatamente después de que encuentra un error. El método no se revierte ni se deshacen los cambios efectuados antes de ocurrir el error.

### Sintaxis:

svc.MoveFolder(source: str, destination: str): bool

### Parámetros:

source: It can be a FolderName or NamePattern to designate one or more folders to be moved.

destination: If the move operation involves a single folder, then destination is the name and path of the moved folder and it must not exist.

If multiple folders are being moved, then destination designates where the folders in source will be moved into. If destination does not exist, it is created.

Wildcard characters are not allowed in destination.

### Ejemplo:

          ' Basic
          FSO.MoveFolder("C:\Temp1\*", "C:\Temp2")

          # Python
          fs.MoveFolder(r"C:\Temp1\*", r"C:\Temp2")

## Normalize

Returns a string containing the normalized path name by collapsing redundant separators and up-level references.

For instance, the path names A//B, A/B/, A/./B and A/foo/../B are all normalized to A/B.

En Windows, las barras (/) se convierten en contrabarras (\).

The current value of the property SF_FileSystem.FileNaming is used to determine the notation of the filename argument as well as the format of the returned string.

### Sintaxis:

svc.Normalize(filename: str): str

### Parámetros:

filename: a string representing a valid path name. The file or directory represented by this argument may not exist.

### Ejemplo:

##### En BASIC

        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/../")

##### En Python

        fs.FileNaming = "URL"
        normPath = fs.Normalize("file:///home/user/Documents/")
        normPath = fs.Normalize("file:///home//user//Documents/")
        normPath = fs.Normalize("file:///home//user//Documents/../")

## OpenTextFile

Opens a file and returns a TextStream object that can be used to read from, write to, or append to the file.

Observe que el método no comprueba que el archivo indicado realmente sea de texto.

El método devuelve un objeto Null (en BASIC) o None (en Python) si ha ocurrido un error.

### Sintaxis:

svc.OpenTextFile(filename: str, iomode: int = 1, create: bool = False, encoding: str = 'UTF-8'): svc

### Parámetros:

filename: Identifies the file to open.

iomode: Indicates the input/output mode. It can be one of three constants: svc.ForReading (default), svc.ForWriting, or svc.ForAppending.

create: Boolean value that indicates whether a new file can be created if the specified filename doesn't exist:

- If True a new file and its parent folders will be created if they do not exist;

- If False then new files are not created (default).

encoding: The character set to be used. The default encoding is "UTF-8".

### Ejemplo:

##### En BASIC

          Dim myFile As Object
          FSO.FileNaming = "SYS"
          Set myFile = FSO.OpenTextFile("C:\Temp\ThisFile.txt", FSO.ForReading)
          If Not IsNull(myFile) Then
              ' ...
          End If

##### En Python

          fs.FileNaming = "SYS"
          myFile = fs.OpenTextFile(r"C:\Temp\ThisFile.txt", fs.ForReading)
          if myFile is not None:
              # ...

## PickFile

Abre un cuadro de diálogo para abrir o guardar archivos.

If the SAVE mode is set and the picked file exists, a warning message will be displayed.

### Sintaxis:

svc.PickFile(defaultfile: str ='', mode: str = 'OPEN', filter: str = ''): str

### Parámetros:

defaultfile: This argument is a string composed of a folder and file name:

- The folder part indicates the folder that will be shown when the dialog opens (default = the last selected folder).

- La parte del archivo designa el archivo predeterminado que se abrirá o guardará.

mode: A string value that can be either "OPEN" (for input files) or "SAVE" (for output files). The default value is "OPEN".

filter: The extension of the files displayed when the dialog is opened (default = no filter).

### Ejemplo:

The examples below open a file picker with the "txt" filter applied.

          ' Basic
          aFile = FSO.PickFile("C:\Documents", "OPEN", "txt")

          # Python
          aFile = fs.PickFile(r"C:\Documents", "OPEN", "txt")

## PickFolder

Abre un cuadro de diálogo para seleccionar una carpeta.

### Sintaxis:

svc.PickFolder(defaultfolder: str = '', freetext: str = ''): str

### Parámetros:

defaultfolder: A string containing the folder name that will be displayed when the dialog is opened (default = the last selected folder).

freetext: Text to display in the dialog (default = "").

### Ejemplo:

          ' Basic
          aFolder = FSO.PickFolder("C:\Documents", "Choose a folder or press Cancel")

          # Python
          aFolder = fs.PickFolder(r"C:\Documents", "Choose a folder or press Cancel")

## SubFolders

Returns a zero-based array of strings corresponding to the folders stored in a given foldername.

La lista puede filtrarse por medio de comodines.

### Sintaxis:

svc.SubFolders(foldername: str, filter: str = ''): str[0..*]

### Parámetros:

foldername: A string representing a folder. The folder must exist. foldername must not designate a file.

filter: A string containing wildcards ("?" and "*") that will be applied to the resulting list of folders (default = "").

### Ejemplo:

##### En BASIC

          Dim folderList As Variant, folder As String
          FSO.FileNaming = "SYS"
          folderList = FSO.SubFolders("/home/user/")
          For Each folder In folderList
              ' ...
          Next folder

##### En Python

          fs.FileNaming = "SYS"
          folderList = fs.SubFolders("/home/user/")
          for folder in folderList:
              # ...

Todas las rutinas o identificadores BASIC de ScriptForge precedidas por guion bajo «_» están reservadas para uso interno. No deben utilizarse en macros BASIC o secuencias Python.

Temas relacionados

Servicio ScriptForge.TextStream

Input Function [VBA]

Open Statement