Περιεχόμενα
Δείκτης 🔎︎

# Υπηρεσία ScriptForge.FileSystem

Η υπηρεσία FileSystem περιλαμβάνει ρουτίνες για το χειρισμό αρχείων και φακέλων. Ακολουθούν ορισμένα παραδείγματα των δυνατοτήτων που παρέχονται από αυτήν την υπηρεσία:

- Επιβεβαίωση ύπαρξης αρχείου ή φακέλου.

- Δημιουργία και διαγραφή φακέλων και αρχείων.

- Εκκίνηση πλαισίων διαλόγου φια άνοιγμα/αποθήκευση αρχείων.

- Πρόσβαση στον κατάλογο αρχείων σε έναν φάκελο, κλπ.

Οι μέθοδοι στην υπηρεσία FileSystem βασίζονται ως επί το πλείστον στη διεπαφή XSimpleFileAccess του UNO.

## Ορισμοί

Ο παρακάτω πίνακας παραθέτει τις κύριες παραμέτρους που χρησιμοποιούνται από τις περισσότερες μεθόδους στην υπηρεσία FileSystem.

Παράμετρος | Περιγραφή
FileName | Το πλήρες όνομα του αρχείου, συμπεριλαμβανομένης της διαδρομής χωρίς διαχωριστικό διαδρομής στο τέλος.
FolderName | Το πλήρες όνομα του φακέλου συμπεριλαμβανομένης της διαδρομής. Μπορεί να περιέχει ή όχι το διαχωριστικό τελικής διαδρομής.
Name | Το τελευταίο στοιχείο του Folder Name (ονόματος φακέλου), ή του File Name (ονόματος αρχείου) συμπεριλαμβανομένης της επέκτασής του. Αυτή η παράμετρος εκφράζεται πάντα χρησιμοποιώντας την εγγενή μορφή του λειτουργικού συστήματος.
BaseName | Το τελευταίο στοιχείο του Folder Name ή του File Name χωρίς την επέκτασή του.
NamePattern | Οποιοδήποτε από τα παραπάνω ονόματα περιέχει χαρακτήρες υποκατάστασης στο τελευταίο συστατικό του. Οι αποδεκτές υποκαταστάσεις είναι: "?" αντιπροσωπεύει οποιονδήποτε μεμονωμένο χαρακτήρα Το "*" αντιπροσωπεύει μηδέν, έναν ή πολλούς χαρακτήρες

Η υπηρεσία FileSystem επιτρέπει την εκτέλεση λειτουργιών σε πολλά αρχεία ταυτόχρονα. Χρησιμοποιώντας μοτίβα ονομάτων, τα σενάρια χρήστη μπορούν να αντιγράψουν, να μετακινήσουν ή να διαγράψουν πολλά αρχεία. Αντίθετα, οι βασικές ενσωματωμένες μέθοδοι μπορούν να χειριστούν μόνο μεμονωμένα αρχεία.

### Σημειογραφία ονοματολογίας αρχείων

Η σημειογραφία που χρησιμοποιείται για την έκφραση ονομάτων αρχείων και φακέλων, τόσο για ορίσματα όσο και για τιμές που επιστρέφονται, ορίζεται από την ιδιότητα FileNaming της υπηρεσίας FileSystem.

Εν ολίγοις, οι πιθανοί τύποι αναπαράστασης είναι "URL" (σημειογραφία αρχείου URL), "SYS" (σημειογραφία λειτουργικού συστήματος) και "ANY" (ΟΠΟΙΟΣΔΗΠΟΤΕ) (προεπιλογή). Δείτε περισσότερες πληροφορίες παρακάτω.

Ένα παράδειγμα της σημειογραφίας της διεύθυνσης URL είναι το file:///C:/Documents/my_file.odt. Όποτε είναι δυνατόν, σκεφτείτε να χρησιμοποιήσετε τη σημειογραφία URL, επειδή είναι μια πιο φορητή εναλλακτική.

Η χρήση της συντόμευσης "~" (tilde), η οποία είναι κοινή σε λειτουργικά συστήματα που βασίζονται σε Linux, δεν υποστηρίζεται για την έκφραση μιας διαδρομής προς ένα φάκελο και ένα όνομα αρχείου. Αντί να χρησιμοποιήσετε το "~/Documents/my_file.odt" χρησιμοποιήστε την πλήρη διαδρομή "/home/user/Documents/my_file.odt".

## Κλήση υπηρεσίας

Το ακόλουθο απόσπασμα κώδικα καλεί την υπηρεσία FileSystem. Ως παράδειγμα χρησιμοποιήθηκε η μέθοδος BuildPath.

##### Σε Basic

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

##### Σε Python

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

## Ιδιότητες

Όνομα | Μόνο για ανάγνωση | Τύπος | Περιγραφή
FileNaming | Όχι | String | Ορίζει ή επιστρέφει τη σημειογραφία των τρεχόντων αρχείων και φακέλων, είτε "ANY", "URL" ή "SYS": "ANY" (οποιοδήποτε): (προεπιλογή) οι μέθοδοι της υπηρεσίας FileSystem δέχονται τόσο τη διεύθυνση URL, όσο και τη σημειογραφία του τρέχοντος λειτουργικού συστήματος για ορίσματα εισόδου, αλλά πάντα επιστρέφουν συμβολοσειρές URL. "URL": οι μέθοδοι της υπηρεσίας FileSystem αναμένουν σημειογραφία URL για ορίσματα εισόδου και συμβολοσειρές διεύθυνσης URL στην επιστροφή. "SYS": οι μέθοδοι της υπηρεσίας FileSystem αναμένουν τη σημειογραφία του τρέχοντος λειτουργικού συστήματος τόσο για ορίσματα εισόδου, όσο και για συμβολοσειρές επιστροφής. Αφού οριστεί, η ιδιότητα FileNaming παραμένει αμετάβλητη είτε μέχρι το τέλος της συνεδρίας του LibreOffice, είτε μέχρι να οριστεί ξανά.
ConfigFolder | Ναι | String | Επιστρέφει τον φάκελο διαμόρφωσης του LibreOffice.
ExtensionsFolder | Ναι | String | Επιστρέφει τον φάκελο όπου είναι εγκατεστημένες οι επεκτάσεις.
HomeFolder | Ναι | String | Επιστρέφει τον αρχικό φάκελο του χρήστη.
InstallFolder | Ναι | String | Επιστρέφει τον φάκελο εγκατάστασης του LibreOffice.
TemplatesFolder | Ναι | String | Επιστρέφει τον φάκελο που περιέχει τα αρχεία προτύπων του συστήματος.
TemporaryFolder | Ναι | String | Επιστρέφει τον φάκελο των προσωρινών αρχείων που έχει οριστεί στις ρυθμίσεις διαδρομής του LibreOffice.
UserTemplatesFolder | Ναι | String | Επιστρέφει τον φάκελο που περιέχει τα αρχεία προτύπων του χρήστη.

ΚΙατάλογος μεθόδων στην υπηρεσία FileSystem
BuildPath CompareFiles CopyFile CopyFolder CreateFolder CreateTextFile DeleteFile DeleteFolder FileExists | Files FolderExists GetBaseName GetExtension GetFileLen GetFileModified GetName GetParentFolderName | GetTempName HashFile MoveFile MoveFolder OpenTextFile PickFile PickFolder SubFolders

## BuildPath

Συνδέει μια διαδρομή φακέλου και το όνομα ενός αρχείου και επιστρέφει το πλήρες όνομα του αρχείου με ένα έγκυρο διαχωριστικό διαδρομής. Το διαχωριστικό διαδρομής προστίθεται μόνο εάν είναι απαραίτητο.

### Σύνταξη:

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

### Παράμετροι:

foldername (όνομα φακέλου) : Η διαδρομή με την οποία θα συνδυαστεί το name. Η καθορισμένη διαδρομή δεν χρειάζεται να είναι υφιστάμενος φάκελος.

name (όνομα): Το όνομα του αρχείου που θα προστεθεί στο foldername (όνομα φακέλου). Αυτή η παράμετρος χρησιμοποιεί τη σημειογραφία του τρέχοντος λειτουργικού συστήματος.

### Παράδειγμα:

##### Σε 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

##### Σε Python

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

## CompareFiles

Συγκρίνει δύο αρχεία και επιστρέφει True όταν φαίνονται ταυτόσημα.

Ανάλογα με την τιμή του ορίσματος comparecontents (σύγκριση περιεχομένων), η σύγκριση μεταξύ των δύο αρχείων μπορεί να βασίζεται είτε μόνο σε γνωρίσματα αρχείου (όπως η ημερομηνία τελευταίας τροποποίησης,) είτε στα περιεχόμενα του αρχείου.

### Σύνταξη:

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

### Παράμετροι:

filename1, filename2: Τα ονόματα των αρχείων προς σύγκριση.

comparecontents (σύγκριση περιεχομένων): Όταν είναι True, τα περιεχόμενα των αρχείων συγκρίνονται (προεπιλογή = False).

### Παράδειγμα:

##### Σε Basic

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

##### Σε Python

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

## CopyFile

Αντιγράφει ένα ή περισσότερα αρχεία από τη μια θέση στην άλλη. Επιστρέφει True εάν έχει αντιγραφεί τουλάχιστον ένα αρχείο, ή False εάν προέκυψε σφάλμα.

Θα προκύψει επίσης σφάλμα εάν η παράμετρος source χρησιμοποιεί χαρακτήρες υποκατάστασης και δεν ταιριάζει με κανένα αρχείο.

Η μέθοδος σταματά αμέσως εάν συναντήσει σφάλμα. Η μέθοδος δεν επαναφέρει ούτε αναιρεί τις αλλαγές που έγιναν πριν εμφανιστεί το σφάλμα.

### Σύνταξη:

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

### Παράμετροι:

source (προέλευση): Μπορεί να είναι ένα FileName ή ένα NamePattern που υποδεικνύει ένα ή περισσότερα αρχεία προς αντιγραφή.

destination (προορισμός): Μπορεί να είναι είτε FileName (όνομα αρχείου) που καθορίζει πού θα αντιγραφεί το μεμονωμένο αρχείο source (προέλευση), ή FolderName (όνομα φακέλου) στο οποίο πρόκειται να αντιγραφούν τα πολλαπλά αρχεία από την source.

- Εάν δεν υπάρχει destination (προορισμός), δημιουργείται.

- Οι χαρακτήρες υποκατάστασης δεν επιτρέπονται στον destination (προορισμό).

overwrite (αντικατάσταση): Εάν είναι True (προεπιλογή), τα αρχεία ενδέχεται να αντικατασταθούν. Η μέθοδος θα αποτύχει εάν ο destination (προορισμός) είναι μόνο για ανάγνωση, ανεξάρτητα από την τιμή που καθορίζεται στο overwrite.

### Παράδειγμα:

Στα παρακάτω παραδείγματα, η πρώτη γραμμή αντιγράφει ένα μόνο αρχείο, ενώ η δεύτερη γραμμή αντιγράφει πολλά αρχεία χρησιμοποιώντας χαρακτήρες υποκατάστασης.

##### Σε Basic

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

##### Σε Python

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

Προσέξτε ότι οι υποφάκελοι και τα περιεχόμενά τους δεν αντιγράφονται όταν χρησιμοποιούνται χαρακτήρες υποκατάστασης στο όρισμα source.

## CopyFolder

Αντιγράφει έναν ή περισσότερους φακέλους από τη μια θέση σε μια άλλη. Επιστρέφει True εάν έχει αντιγραφεί τουλάχιστον ένας φάκελος, ή False εάν παρουσιάστηκε σφάλμα.

Θα προκύψει επίσης σφάλμα εάν η παράμετρος source χρησιμοποιεί χαρακτήρες υποκατάστασης και δεν ταιριάζει με κανέναν φάκελο.

Η μέθοδος σταματά αμέσως εάν συναντήσει σφάλμα. Η μέθοδος δεν επαναφέρει ούτε αναιρεί τις αλλαγές που έγιναν πριν εμφανιστεί το σφάλμα.

### Σύνταξη:

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

### Παράμετροι:

source: Μπορεί να είναι ένα FolderName, ή ένα NamePattern που υποδεικνύει έναν ή περισσότερους φακέλους προς αντιγραφή.

destination: Καθορίζει το FolderName στον οποίο θα αντιγραφούν οι μεμονωμένοι ή πολλοί φάκελοι που ορίζονται στην source.

- Εάν δεν υπάρχει destination (προορισμός), δημιουργείται.

- Οι χαρακτήρες υποκατάστασης δεν επιτρέπονται στον destination (προορισμό).

overwrite (αντικατάσταση): Εάν είναι True (προεπιλογή), τα αρχεία ενδέχεται να αντικατασταθούν. Η μέθοδος θα αποτύχει εάν ο destination (προορισμός) είναι μόνο για ανάγνωση, ανεξάρτητα από την τιμή που καθορίζεται στο overwrite.

### Παράδειγμα:

Στα παρακάτω παραδείγματα αντιγράφονται όλα τα αρχεία, οι φάκελοι και οι υποφάκελοι.

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

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

## CreateFolder

Δημιουργεί το καθορισμένο FolderName (όνομα φακέλου). Επιστρέφει True, εάν ο φάκελος δημιουργήθηκε με επιτυχία.

Εάν ο καθορισμένος φάκελος έχει έναν γονικό φάκελο που δεν υπάρχει, δημιουργείται.

### Σύνταξη:

svc.CreateFolder(foldername: str): bool

### Παράμετροι:

foldername (όνομα φακέλου): Μια συμβολοσειρά που αντιπροσωπεύει τον φάκελο που θα δημιουργηθεί. Εάν ο φάκελος υπάρχει ήδη, θα δημιουργηθεί μια εξαίρεση.

### Παράδειγμα:

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

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

## CreateTextFile

Δημιουργεί ένα καθορισμένο αρχείο και επιστρέφει μια παρουσία υπηρεσίας TextStream που μπορεί να χρησιμοποιηθεί για την εγγραφή στο αρχείο.

Η μέθοδος επιστρέφει ένα αντικείμενο Null εάν παρουσιαστεί σφάλμα.

### Σύνταξη:

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

### Παράμετροι:

filename (όνομα αρχείου): Το όνομα του αρχείου που θα δημιουργηθεί.

overwrite (αντικατάσταση): Δυαδική τιμή που καθορίζει εάν το filename (όνομα αρχείου) μπορεί να αντικατασταθεί (προεπιλογή = True).

encoding (κωδικοποίηση): Το σύνολο των χαρακτήρων που θα χρησιμοποιηθεί. Η προεπιλεγμένη κωδικοποίηση είναι "UTF-8".

### Παράδειγμα:

##### Σε Basic

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

##### Σε Python

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

Για να μάθετε περισσότερα σχετικά με τα ονόματα των συνόλων χαρακτήρων, επισκεφτείτε τη σελίδα Σύνολο χαρακτήρων IANA. Προσέξτε ότι το LibreOffice δεν υλοποιεί όλα τα υφιστάμενα σύνολα χαρακτήρων.

## DeleteFile

Διαγράφει ένα ή περισσότερα αρχεία. Επιστρέφει True, εάν έχει διαγραφεί τουλάχιστον ένα αρχείο, ή False εάν προέκυψε σφάλμα.

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.

The method stops immediately after it encounters an error. The method does not roll back nor does it undo changes made before the error occurred.

### Σύνταξη:

svc.DeleteFile(filename: str): bool

### Παράμετροι:

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

### Παράδειγμα:

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

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

          # Python
          fso.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.

The folders to be deleted must not be readonly.

The method stops immediately after it encounters an error. The method does not roll back nor does it undo changes made before the error occurred.

### Σύνταξη:

svc.DeleteFolder(foldername: str): bool

### Παράμετροι:

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

### Παράδειγμα:

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
          fso.DeleteFolder(r"C:\Temp\*")

## FileExists

Returns True if a given file name is valid and exists, otherwise the method returns False.

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

### Σύνταξη:

svc.FileExists(filename: str): bool

### Παράμετροι:

filename: A string representing the file to be tested.

### Παράδειγμα:

##### Σε Basic

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

##### Σε Python

          fso.FileNaming = "SYS"
          if fso.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.

The resulting list may be filtered with wildcards.

### Σύνταξη:

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

### Παράμετροι:

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

### Παράδειγμα:

##### Σε Basic

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

##### Σε Python

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

## FolderExists

Returns True if the specified FolderName is valid and exists, otherwise the method returns False.

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

### Σύνταξη:

svc.FolderExists(foldername: str): bool

### Παράμετροι:

foldername: A string representing the folder to be tested.

### Παράδειγμα:

##### Σε Basic

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

##### Σε Python

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

## GetBaseName

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

The method does not check if the specified file or folder exists.

### Σύνταξη:

svc.GetBaseName(filename: str): str

### Παράμετροι:

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

### Παράδειγμα:

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.

##### Σε Basic

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

##### Σε Python

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

## GetExtension

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

The method does not check for the existence of the specified file or folder.

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

### Σύνταξη:

svc.GetExtension(filename: str): str

### Παράμετροι:

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

### Παράδειγμα:

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

          # Python
          ext = fso.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.

### Σύνταξη:

svc.GetFileLen(filename: str): num

### Παράμετροι:

filename: A string representing an existing file.

### Παράδειγμα:

##### Σε Basic

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

##### Σε Python

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

## GetFileModified

Returns the last modified date of a given file.

### Σύνταξη:

svc.GetFileModified(filename: str): datetime

### Παράμετροι:

filename: A string representing an existing file.

### Παράδειγμα:

##### Σε Basic

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

##### Σε Python

          fso.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.

The method does not check if the specified file or folder exists.

### Σύνταξη:

svc.GetName(filename: str): str

### Παράμετροι:

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

### Παράδειγμα:

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

          # Python
          a = fso.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.

The method does not check if the specified file or folder exists.

### Σύνταξη:

svc.GetParentFolderName(filename: str): str

### Παράμετροι:

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

### Παράδειγμα:

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

          # Python
          a = fso.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.

The method does not create the temporary file.

### Σύνταξη:

svc.GetTempName(): str

### Παράδειγμα:

##### Σε Basic

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

##### Σε Python

          fso.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.

### Σύνταξη:

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

### Παράμετροι:

filename: A string representing an existing file.

algorithm: One of the supported algorithms.

### Παράδειγμα:

          ' 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.

The method stops immediately after it encounters an error. The method does not roll back nor does it undo changes made before the error occurred.

### Σύνταξη:

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

### Παράμετροι:

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.

### Παράδειγμα:

In the following examples only files are moved, subfolders are not.

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

          # Python
          fso.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.

The method stops immediately after it encounters an error. The method does not roll back nor does it undo changes made before the error occurred.

### Σύνταξη:

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

### Παράμετροι:

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.

### Παράδειγμα:

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

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

## OpenTextFile

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

Note that the method does not check if the given file is really a text file.

The method returns a Null object (in Basic) or None (in Python) if an error occurred.

### Σύνταξη:

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

### Παράμετροι:

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

### Παράδειγμα:

##### Σε 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

##### Σε Python

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

## PickFile

Opens a dialog box to open or save files.

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

### Σύνταξη:

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

### Παράμετροι:

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

- The file part designates the default file to open or save.

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

### Παράδειγμα:

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

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

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

## PickFolder

Opens a dialog box to select a folder.

### Σύνταξη:

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

### Παράμετροι:

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

### Παράδειγμα:

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

          # Python
          aFolder = fso.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.

The list may be filtered with wildcards.

### Σύνταξη:

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

### Παράμετροι:

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

### Παράδειγμα:

##### Σε Basic

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

##### Σε Python

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

Όλες οι ρουτίνες ή αναγνωριστικά του ScriptForge στη Basic που έχουν το πρόθεμα χαρακτήρα υπογράμμισης "_" δεσμεύονται για εσωτερική χρήση. Δεν προορίζονται να χρησιμοποιηθούν σε μακροεντολές Basic ή σενάρια Python.

Σχετικά θέματα

ScriptForge.TextStream service

Συνάρτηση Input [VBA]

Πρόταση Open