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 !