ScriptForge. Service FileSystem

Le service FileSystem inclut des routines pour gérer les fichiers et les dossiers. Voici quelques exemples des fonctionnalités fournies par ce service :

note

Les méthodes du service FileSystem sont principalement basées sur l'interface UNO XSimpleFileAccess.


Définitions

Le tableau ci-dessous répertorie les principaux paramètres utilisés par la plupart des méthodes du service FileSystem.

Paramètre

Description

FileName

Le nom complet du fichier, y compris le chemin sans séparateur de chemin à la fin.

FolderName

Le nom complet du dossier, y compris le chemin. Il peut ou non contenir le séparateur de chemin de fin.

Name

Le dernier composant du Folder Name ou du File Name, y compris son extension. Ce paramètre est toujours exprimé en utilisant le format natif du système d'exploitation.

BaseName

Le dernier composant du Folder Name ou du File Name sans son extension.

NamePattern

N'importe lequel des noms ci-dessus contenant des caractères génériques dans son dernier composant. Les jokers admis sont :

  • "?" représente n'importe quel caractère unique

  • "*" représente zéro, un ou plusieurs caractères


tip

Le service FileSystem permet d'effectuer des opérations sur plusieurs fichiers en même temps. En utilisant des modèles de nom, les scripts utilisateur peuvent copier, déplacer ou supprimer plusieurs fichiers. Inversement, les méthodes intégrées Basic ne peuvent gérer que des fichiers uniques.


Notation de nommage de fichier

La notation utilisée pour exprimer les noms de fichiers et de dossiers, à la fois pour les arguments et les valeurs renvoyées, est définie par la propriété FileNaming du service FileSystem.

En bref, les types de représentation possibles sont "URL" (notation de fichier URL), "SYS" (notation de système d'exploitation) et "ANY" (par défaut). Voir plus d'informations ci-dessous.

tip

Un exemple de notation d'URL est file:///C:/Documents/my_file.odt. Dans la mesure du possible, envisagez d'utiliser la notation URL car c'est une alternative plus portable.


warning

L'utilisation du raccourci "~" (tilde), qui est courant dans les systèmes d'exploitation basés sur Linux, n'est pas prise en charge pour exprimer un chemin vers un dossier et un nom de fichier. Au lieu d'utiliser "~/Documents/my_file.odt" utilisez le chemin complet "/home/user/Documents/my_file.odt".


Invocation du service

L'extrait de code suivant appelle le service FileSystem. La méthode BuildPath a été utilisée comme exemple.

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(...)
    

Accès au système de fichiers virtuel d'un document

Les fichiers de document LibreOffice sont des fichiers ZIP compressés qui contiennent les fichiers et dossiers représentant le contenu réel du document. Pendant que le document est ouvert, il est possible d'accéder à ce système de fichiers virtuel, d'explorer sa structure, ainsi que de lire et de créer des fichiers et des dossiers.

L'exemple suivant montre comment créer un fichier texte nommé myFile.txt et le stocker dans le système de fichiers virtuel du document.

En Basic :

    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)
    ' Obtient la notation du chemin URL vers la racine du système de fichiers virtuel
    sRoot = oDoc.FileSystem()
    sMyDir = sRoot & "myDir"
    ' Crée le dossier "myDir" s'il n'existe pas
    If Not fso.FolderExists(sMyDir) Then
        fso.CreateFolder(sMyDir)
    End If
    ' Crée le fichier et y écrit du texte
    sFile = fso.BuildPath(sMyDir, "myFile.txt")
    oFile = fso.CreateTextFile(sFile)
    oFile.WriteLine("Hello!")
    oFile.CloseFile()
  
En Python

    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()
  

En général, toutes les méthodes du service FileSystem peuvent être utilisées pour manipuler des fichiers dans le système de fichiers virtuel du document. Toutefois, les restrictions suivantes s'appliquent :

note

Le chemin d'accès au système de fichiers virtuel n'est pas une adresse physique sur le disque dur de l'ordinateur. Il n'est accessible qu'à partir d'un script LibreOffice et n'existe que lorsque le fichier de document est ouvert.


Propriétés

Nom

Lecture seule

Type

Description

FileNaming

Non

String

Définit ou renvoie la notation actuelle des fichiers et dossiers, soit "ANY", "URL" ou "SYS":

  • "ANY" : (par défaut) les méthodes du service FileSystem acceptent à la fois l'URL et la notation du système d'exploitation actuel pour les arguments d'entrée, mais renvoient toujours des chaînes d'URL.

  • "URL" : les méthodes du service FileSystem attendent une notation d'URL pour les arguments d'entrée et renvoient des chaînes d'URL.

  • "SYS" : les méthodes du service FileSystem attendent la notation du système d'exploitation actuel pour les arguments d'entrée et les chaînes de retour.

Une fois définie, la propriété FileNaming reste inchangée jusqu'à la fin de la session LibreOffice ou jusqu'à ce qu'elle soit à nouveau définie.

ConfigFolder

Oui

String

Renvoie le dossier de configuration de LibreOffice.

ExtensionsFolder

Oui

String

Renvoie le dossier dans lequel les extensions sont installées.

HomeFolder

Oui

String

Renvoie le dossier d'accueil de l'utilisateur.

InstallFolder

Oui

String

Renvoie le dossier d'installation de LibreOffice.

TemplatesFolder

Oui

String

Renvoie le dossier contenant les fichiers de modèles système.

TemporaryFolder

Oui

String

Renvoie le dossier des fichiers temporaires défini dans les paramètres du chemin LibreOffice.

UserTemplatesFolder

Oui

String

Renvoie le dossier contenant les fichiers de modèles définis par l'utilisateur.


Liste des méthodes dans le service 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

Joint un chemin de dossier et le nom d'un fichier et renvoie le nom de fichier complet avec un séparateur de chemin valide. Le séparateur de chemin n'est ajouté que si nécessaire.

Syntaxe :

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

Paramètres :

foldername : le chemin avec lequel name sera combiné. Le chemin spécifié n'a pas besoin d'être un dossier existant.

name : le nom du fichier à ajouter à foldername. Ce paramètre utilise la notation du système d'exploitation actuel.

Exemple :

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

Compare deux fichiers et renvoie True lorsqu'ils semblent identiques.

Selon la valeur de l'argument comparecontents, la comparaison entre les deux fichiers peut être basée uniquement sur les attributs du fichier (comme la date de la dernière modification) ou basée sur le contenu du fichier.

Syntaxe :

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

Paramètres :

filename1, filename2 : les fichiers à comparer.

comparecontents : lorsque True, le contenu des fichiers est comparé (par défaut = False).

Exemple :

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

Copie un ou plusieurs fichiers d'un emplacement à un autre. Renvoie True si au moins un fichier a été copié ou False si une erreur s'est produite.

Une erreur se produira également si le paramètre source utilise des caractères génériques et ne correspond à aucun fichier.

La méthode s'arrête immédiatement après avoir rencontré une erreur. La méthode n'annule pas les modifications apportées avant que l'erreur ne se produise.

Syntaxe :

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

Paramètres :

source : il peut s'agir d'un FileName ou d'un NamePattern indiquant un ou plusieurs fichiers à copier.

destination : il peut s'agir soit d'un FileName spécifiant où le fichier source unique doit être copié, soit d'un FolderName dans lequel les multiples fichiers de source doivent être copiés.

overwrite : si True (par défaut), les fichiers peuvent être écrasés. La méthode échouera si destination est en lecture seule, quelle que soit la valeur spécifiée dans overwrite.

Exemple :

Dans les exemples ci-dessous, la première ligne copie un seul fichier tandis que la deuxième ligne copie plusieurs fichiers en utilisant des caractères génériques.

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)
    
note

Sachez que les sous-dossiers et leur contenu ne sont pas copiés lorsque des caractères génériques sont utilisés dans l'argument source.


CopyFolder

Copie un ou plusieurs dossiers d'un emplacement à un autre. Renvoie True si au moins un dossier a été copié ou False si une erreur s'est produite.

Une erreur se produira également si le paramètre source utilise des caractères génériques et ne correspond à aucun dossier.

La méthode s'arrête immédiatement après avoir rencontré une erreur. La méthode n'annule pas les modifications apportées avant que l'erreur ne se produise.

Syntaxe :

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

Paramètres :

source : il peut s'agir d'un FolderName ou d'un NamePattern indiquant un ou plusieurs dossiers à copier.

destination : spécifie le FolderName dans lequel les dossiers uniques ou multiples définis dans source doivent être copiés.

overwrite : si True (par défaut), les fichiers peuvent être écrasés. La méthode échouera si destination est en lecture seule, quelle que soit la valeur spécifiée dans overwrite.

Exemple :

Dans les exemples ci-dessous, tous les fichiers, dossiers et sous-dossiers sont copiés.


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

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

CreateFolder

Crée le FolderName spécifié. Renvoie True si le dossier a pu être créé avec succès.

Si le dossier spécifié a un dossier parent qui n'existe pas, il est créé.

Syntaxe :

svc.CreateFolder(foldername: str): bool

Paramètres :

foldername : une chaîne représentant le dossier à créer. Si le dossier existe déjà, une exception sera levée.

Exemple :


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

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

CreateTextFile

Crée un fichier spécifié et renvoie une instance de service TextStream qui peut être utilisée pour écrire dans le fichier.

La méthode renvoie un objet Null si une erreur s'est produite.

Syntaxe :

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

Paramètres :

filename : le nom du fichier à créer.

overwrite : valeur booléenne qui détermine si filename peut être écrasé (par défaut = True).

encoding : le jeu de caractères à utiliser. L'encodage par défaut est "UTF-8".

Exemple :

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)
    
note

Pour en savoir plus sur les noms des jeux de caractères, visitez la page Jeu de caractères de l'IANA. N'oubliez pas que LibreOffice n'implémente pas tous les jeux de caractères existants.


DeleteFile

Supprime un ou plusieurs fichiers. Renvoie True si au moins un fichier a été supprimé ou False si une erreur s'est produite.

Une erreur se produira également si le paramètre filename utilise des caractères génériques et ne correspond à aucun fichier.

Les fichiers à supprimer ne doivent pas être en lecture seule.

La méthode s'arrête immédiatement après avoir rencontré une erreur. La méthode n'annule pas les modifications apportées avant que l'erreur ne se produise.

Syntaxe :

svc.DeleteFile(filename: str): bool

Paramètres :

filename : il peut s'agir d'un FileName ou d'un NamePattern indiquant un ou plusieurs fichiers à supprimer.

Exemple :

Dans les exemples ci-dessous, seuls les fichiers sont supprimés, les sous-dossiers ne sont pas supprimés.


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

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

DeleteFolder

Supprime un ou plusieurs dossiers. Renvoie True si au moins un dossier a été supprimé ou False si une erreur s'est produite.

Une erreur se produira également si le paramètre foldername utilise des caractères génériques et ne correspond à aucun dossier.

Les dossiers à supprimer ne doivent pas être en lecture seule.

La méthode s'arrête immédiatement après avoir rencontré une erreur. La méthode n'annule pas les modifications apportées avant que l'erreur ne se produise.

Syntaxe :

svc.DeleteFolder(foldername: str): bool

Paramètres :

foldername : il peut s'agir d'un FolderName ou d'un NamePattern indiquant un ou plusieurs dossiers à supprimer.

Exemple :

Dans les exemples ci-dessous, seuls les dossiers et leur contenu sont supprimés. Les fichiers du dossier parent "C:\Temp" ne sont pas supprimés.


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

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

ExtensionFolder

Renvoie une chaîne contenant le dossier dans lequel le package d'extension spécifié est installé.

note

La valeur actuelle de la propriété FS FileSystem.File Naming est utilisée pour déterminer la notation de la chaîne renvoyée.


tip

Utilisez la propriété Extensions du service Platform pour obtenir une matrice de chaînes avec les identifiants de toutes les extensions installées.


Syntaxe :

svc.ExtensionFolder(extension: str): str

Paramètres :

extension : une valeur de chaîne avec l'ID de l'extension. Si l'extension n'est pas installée, une exception est levée.

Exemple :

Les exemples ci-dessous en Basic et Python renvoient le dossier dans lequel l'extension APSO est installée.


      ' 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

Renvoie True si un nom de fichier donné est valide et existe, sinon la méthode renvoie False.

Si le paramètre filename est en fait un nom de dossier existant, la méthode renvoie False.

Syntaxe :

svc.FileExists(filename: str): bool

Paramètres :

filename: une chaîne représentant le fichier à tester.

Exemple :

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

Renvoie une matrice de base zéro des fichiers stockés dans un dossier donné. Chaque entrée du tableau est une chaîne contenant le chemin complet et le nom du fichier.

Si l'argument foldername spécifie un dossier qui n'existe pas, une exception est levée.

La liste résultante peut être filtrée avec des caractères génériques.

Syntaxe :

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

Paramètres :

foldername : une chaîne représentant un dossier. Le dossier doit exister. Cet argument ne doit pas désigner un fichier.

filter : une chaîne contenant des caractères génériques ("?" et "*") qui seront appliqués à la liste de fichiers résultante (par défaut = "").

includesubfolders : définissez cet argument sur True pour inclure le contenu des sous-dossiers (par défaut = False).

Exemple :

En Basic :

      Dim filesList As Variant, file As String
      FSO.FileNaming = "SYS"
      ' Renvoie tous les fichiers correspondant au filtre "*.txt", y compris les fichiers dans les sous-dossiers
      filesList = FSO.Files("/home/user/", "*.txt", IncludeSubfolders := True)
      For Each file In filesList
          ' ...
      Next file
    
En Python

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

FolderExists

Renvoie True si le FolderName spécifié est valide et existe, sinon la méthode renvoie False.

Si le paramètre foldername est en fait un nom de fichier existant, la méthode renvoie False.

Syntaxe :

svc.FolderExists(foldername: str): bool

Paramètres :

foldername : une chaîne représentant le dossier à tester.

Exemple :

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

Renvoie le BaseName (égal au dernier composant) d'un nom de dossier ou de fichier, sans son extension.

La méthode ne vérifie pas si le dossier ou le fichier spécifié existe.

Syntaxe :

svc.GetBaseName(filename: str): str

Paramètres :

filename: une chaîne représentant le nom du fichier et son chemin.

Exemple :

Dans les exemples ci-dessous, le premier appel de la méthode GetBaseName correspond à un dossier, donc la fonction renvoie le dernier composant du chemin. Le deuxième appel reçoit un nom de fichier en entrée, donc le nom du fichier est renvoyé sans son 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

Renvoie la partie extension d'un nom de fichier ou de dossier sans le caractère point ".".

Cette méthode ne vérifie pas l'existence du fichier ou du dossier spécifié.

Si cette méthode est appliquée à un nom de dossier ou à un fichier sans extension, alors une chaîne vide est renvoyée.

Syntaxe :

svc.GetExtension(filename: str): str

Paramètres :

filename: une chaîne représentant le nom du fichier et son chemin.

Exemple :


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

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

GetFileLen

La fonction intégrée FileLen Basic renvoie le nombre d'octets contenus dans un fichier sous la forme d'une valeur Long, c'est-à-dire jusqu'à 2 Go.

La méthode GetFileLen peut gérer des fichiers de tailles beaucoup plus importantes en retournant une valeur Currency.

Syntaxe :

svc.GetFileLen(filename: str): num

Paramètres :

filename: une chaîne représentant un fichier existant.

Exemple :

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

Renvoie la date de dernière modification d'un fichier donné.

Syntaxe :

svc.GetFileModified(filename: str): datetime

Paramètres :

filename: une chaîne représentant un fichier existant.

Exemple :

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

Renvoie le dernier composant d'un nom de fichier ou de dossier au format natif du système d'exploitation.

La méthode ne vérifie pas si le dossier ou le fichier spécifié existe.

Syntaxe :

svc.GetName(filename: str): str

Paramètres :

filename: une chaîne représentant le nom du fichier et son chemin.

Exemple :


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

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

GetParentFolderName

Renvoie une chaîne contenant le nom du dossier parent d'un nom de fichier ou de dossier spécifié.

La méthode ne vérifie pas si le dossier ou le fichier spécifié existe.

Syntaxe :

svc.GetParentFolderName(filename: str): str

Paramètres :

filename : une chaîne avec le nom du fichier ou du dossier à analyser.

Exemple :


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

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

GetTempName

Renvoie un nom de fichier temporaire généré de manière aléatoire qui est utile pour effectuer des opérations nécessitant un fichier temporaire.

Par défaut, le nom de fichier renvoyé n'a pas d'extension. Utilisez le paramètre extension pour spécifier l'extension du nom de fichier à générer.

La partie dossier de la chaîne renvoyée est le dossier temporaire du système.

Cette méthode ne crée pas le fichier temporaire.

Syntaxe :

svc.GetTempName(extension: str): str

Paramètres :

extension : l'extension du nom du fichier temporaire (par défaut = "").

Exemple :

En Basic :

      Dim fName As String
      FSO.FileNaming = "SYS"
      fName = FSO.GetTempName(Extension := "txt")
      ' "/tmp/SF_574068.txt"
    
En Python

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

HashFile

Les fonctions de hachage sont utilisées par certains algorithmes de chiffrement, dans les signatures numériques, les codes d'authentification des messages, la détection des fraudes, les empreintes digitales, les sommes de contrôle (vérification de l'intégrité des messages), les tables de hachage, le stockage des mots de passe et bien plus encore.

La méthode HashFile renvoie le résultat d'une fonction de hachage, appliquée sur un fichier donné et utilisant un algorithme spécifié. La valeur renvoyée est une chaîne de chiffres hexadécimaux en minuscules.

Les algorithmes de hachage pris en charge sont : MD5, SHA1, SHA224, SHA256, SHA384 et SHA512.

Syntaxe :

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

Paramètres :

filename: une chaîne représentant un fichier existant.

algorithm : un des algorithmes pris en charge.

Exemple :


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

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

MoveFile

Déplace un ou plusieurs fichiers d'un emplacement à un autre. Renvoie True si au moins un fichier a été déplacé ou False si une erreur s'est produite.

Une erreur se produira également si le paramètre source utilise des caractères génériques et ne correspond à aucun fichier.

La méthode s'arrête immédiatement après avoir rencontré une erreur. La méthode n'annule pas les modifications apportées avant que l'erreur ne se produise.

Syntaxe :

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

Paramètres :

source : il peut s'agir d'un FileName ou d'un NamePattern indiquant un ou plusieurs fichiers à déplacer.

destination : si source est un FileName alors ce paramètre indique le nouveau chemin et le nom du fichier déplacé.

Si l'opération de déplacement implique plusieurs fichiers, alors destination doit être un nom de dossier. S'il n'existe pas, il est créé.

Si source et destination ont le même dossier parent, la méthode renommera la source.

Les caractères génériques ne sont pas autorisés dans destination.

Exemple :

Dans les exemples suivants, seuls les fichiers sont déplacé, les sous-dossiers ne le sont pas.


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

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

MoveFolder

Déplace un ou plusieurs dossiers d'un emplacement à un autre. Renvoie True si au moins un dossier a été déplacé ou False si une erreur s'est produite.

Une erreur se produira également si le paramètre source utilise des caractères génériques et ne correspond à aucun dossier.

La méthode s'arrête immédiatement après avoir rencontré une erreur. La méthode n'annule pas les modifications apportées avant que l'erreur ne se produise.

Syntaxe :

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

Paramètres :

source : il peut s'agir d'un FolderName ou d'un NamePattern indiquant un ou plusieurs dossiers à déplacer.

destination : si l'opération de déplacement implique un seul dossier, alors destination est le nom et le chemin du dossier déplacé et il ne doit pas exister.

Si plusieurs dossiers sont déplacés, alors destination désigne l'endroit où les dossiers de source seront déplacés. Si la destination n'existe pas, elle est créée.

Les caractères génériques ne sont pas autorisés dans destination.

Exemple :


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

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

Normalize

Renvoie une chaîne contenant le nom de chemin normalisé en réduisant les séparateurs redondants et les références de niveau supérieur.

Par exemple, les noms de chemin A//B, A/B/, A/./B et A/foo/ ../B sont tous normalisés en A/B.

Sous Windows, les barres obliques "/" sont converties en barres obliques inverses "\".

note

La valeur actuelle de la propriété SF_FileSystem.FileNaming est utilisée pour déterminer la notation de l'argument filename ainsi que le format de la chaîne renvoyée.


Syntaxe :

svc.Normalize(filename: str): str

Paramètres :

filename : une chaîne représentant un nom de chemin valide. Le fichier ou le répertoire représenté par cet argument peut ne pas exister.

Exemple :

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

Ouvre un fichier et renvoie un objet TextStream qui peut être utilisé pour lire, écrire ou ajouter au fichier.

Notez que la méthode ne vérifie pas si le fichier donné est vraiment un fichier texte.

La méthode renvoie un objet Null (en Basic) ou None (en Python) si une erreur s'est produite.

Syntaxe :

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

Paramètres :

filename : identifie le fichier à ouvrir.

iomode : indique le mode d'entrée/sortie. Il peut s'agir de l'une des trois constantes : svc.ForReading (par défaut), svc.ForWriting ou svc.ForAppending.

create : valeur booléenne qui indique si un nouveau fichier peut être créé si le filename spécifié n'existe pas :

encoding : le jeu de caractères à utiliser. L'encodage par défaut est "UTF-8".

Exemple :

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

Ouvre une boîte de dialogue pour ouvrir ou enregistrer des fichiers.

Si le mode SAVE est activé et que le fichier sélectionné existe, un message d'avertissement s'affichera.

Syntaxe :

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

Paramètres :

defaultfile : cet argument est une chaîne composée d'un dossier et d'un nom de fichier :

mode : une valeur de chaîne qui peut être "OPEN" (pour les fichiers d'entrée) ou "SAVE" (pour les fichiers de sortie). La valeur par défaut est "OPEN".

filtre : l'extension des fichiers affichés à l'ouverture de la boîte de dialogue (par défaut = pas de filtre).

Exemple :

Les exemples ci-dessous ouvrent un sélecteur de fichiers avec le filtre "txt" appliqué.


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

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

PickFolder

Ouvre une boîte de dialogue pour sélectionner un dossier.

Syntaxe :

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

Paramètres :

defaultfolder : une chaîne contenant le nom du dossier qui sera affiché à l'ouverture de la boîte de dialogue (par défaut = le dernier dossier sélectionné).

freetext : le texte à afficher dans la boîte de dialogue (par défaut ="").

Exemple :


      ' 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

Renvoie un tableau de chaînes de base zéro correspondant aux dossiers stockés dans un foldername donné.

La liste peut être filtrée avec des caractères génériques.

Syntaxe :

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

Paramètres :

foldername : une chaîne représentant un dossier. Le dossier doit exister. foldername ne doit pas désigner un fichier.

filter : une chaîne contenant des caractères génériques ("?" et "*") qui seront appliqués à la liste de dossiers résultante (par défaut = "").

includesubfolders : définissez cet argument sur True pour inclure le contenu des sous-dossiers (par défaut = False).

Exemple :

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:
          # ...
    
warning

Toutes les routines ou identifiants de base ScriptForge qui sont préfixés par un caractère de soulignement "_" sont réservés à un usage interne. Ils ne sont pas destinés à être utilisés dans des macros de base ou des scripts Python.


Aidez-nous !