Περιεχόμενα

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

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

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

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

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

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

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

## Ορισμοί

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

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

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

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

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

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

Ένα παράδειγμα της σημειογραφίας της διεύθυνσης 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
          fs = CreateScriptService("FileSystem")
          fs.BuildPath(...)

## Accessing the Virtual File System of a Document

LibreOffice document files are compressed ZIP files that contain the files and folders that represent the actual document contents. While the document is open, it is possible to access this virtual file system, explore its structure, as well as read and create files and folders.

The following example shows how to create a text file named myFile.txt and store it inside the document's virtual file system.

##### Σε 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)
        ' Gets the URL path notation to the root of the virtual file system
        sRoot = oDoc.FileSystem()
        sMyDir = sRoot & "myDir"
        ' Creates the folder "myDir" if it does not exist
        If Not fso.FolderExists(sMyDir) Then
            fso.CreateFolder(sMyDir)
        End If
        ' Creates the file and write some text into it
        sFile = fso.BuildPath(sMyDir, "myFile.txt")
        oFile = fso.CreateTextFile(sFile)
        oFile.WriteLine("Hello!")
        oFile.CloseFile()

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

In general, all methods of the FileSystem service can be used to manipulate files in the document's virtual file system. However, the following restrictions apply:

- It is not possible to create files in the root folder. Use existing subfolders or create new folders to store files in the document's file system.

- The FileNaming notation is always considered to be "URL".

- The methods CompareFiles, GetFileModified, HashFile, PickFile and PickFolder are not applicable.

- The method GetFileLen always returns zero.

- The method Normalize always returns the input string unchanged.

The path to the virtual file system is not a physical address on the computer's hard drive. It can only be accessed from within a LibreOffice script and it only exists while the document file is open.

## Ιδιότητες

Όνομα | Μόνο για ανάγνωση | Τύπος | Περιγραφή
--- | --- | --- | ---
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 ExtensionFolder | FileExists Files FolderExists GetBaseName GetExtension GetFileLen GetFileModified GetName GetParentFolderName | GetTempName HashFile MoveFile MoveFolder Normalize 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

          fs = CreateScriptService("FileSystem")
          fs.FileNaming = "URL"
          aFileName = fs.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

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

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

Be aware that subfolders and their contents are not copied when wildcards are used in the source argument.

## 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
          fs.CopyFolder(r"C:\Documents\*", r"C:\Temp", overwrite = False)

## CreateFolder

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

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

### Σύνταξη:

svc.CreateFolder(foldername: str): bool

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

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

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

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

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

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

To learn more about the names of character sets, visit IANA's Character Set page. Be aware that LibreOffice does not implement all existing character sets.

## DeleteFile

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

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

Τα αρχεία που θα διαγραφούν δεν πρέπει να είναι μόνο για ανάγνωση.

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

### Σύνταξη:

svc.DeleteFile(filename: str): bool

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

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

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

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

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

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

## DeleteFolder

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

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

Οι φάκελοι που θα διαγραφούν δεν πρέπει να είναι μόνο για ανάγνωση.

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

### Σύνταξη:

svc.DeleteFolder(foldername: str): bool

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

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

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

Στα παρακάτω παραδείγματα διαγράφονται μόνο οι φάκελοι και τα περιεχόμενά τους. Τα αρχεία στον γονικό φάκελο "C:\Temp" δεν διαγράφονται.

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

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

## ExtensionFolder

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

The current value of the property SF_FileSystem.FileNaming is used to determine the notation of the returned string.

Χρησιμοποιήστε την ιδιότητα Extensions (Επεκτάσεις) από την Platform (Πλατφόρμα) υπηρεσία λήψης πίνακα συμβολοσειρών με τα αναγνωριστικά όλων των εγκατεστημένων επεκτάσεων.

### Σύνταξη:

svc.ExtensionFolder(extension: str): str

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

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

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

Τα παρακάτω παραδείγματα σε Basic και Python επιστρέφουν τον φάκελο όπου είναι εγκατεστημένη η επέκταση APSO.

          ' 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

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

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

### Σύνταξη:

svc.FileExists(filename: str): bool

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

filename (όνομα αρχείου): Μια συμβολοσειρά που αντιπροσωπεύει το αρχείο που πρόκειται να δοκιμαστεί.

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

##### Σε Basic

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

##### Σε Python

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

## Files

Επιστρέφει έναν πίνακα με βάση το μηδέν των αρχείων που είναι αποθηκευμένα σε έναν δεδομένο φάκελο. Κάθε καταχώρηση στον πίνακα είναι μια συμβολοσειρά που περιέχει την πλήρη διαδρομή και το όνομα του αρχείου.

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

Ο κατάλογος που προκύπτει μπορεί να φιλτραριστεί με χαρακτήρες υποκατάστασης.

### Σύνταξη:

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

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

foldername (όνομα φακέλου): Μια συμβολοσειρά που αντιπροσωπεύει έναν φάκελο. Ο φάκελος πρέπει να υπάρχει. Αυτό το όρισμα δεν πρέπει να προσδιορίζει αρχείο.

filter (φίλτρο): Μια συμβολοσειρά που περιέχει χαρακτήρες υποκατάστασης ("?" και "*") που θα εφαρμοστεί στον κατάλογο αρχείων που προκύπτει (προεπιλογή = "").

includesubfolders: Set this argument to True to include the contents of subfolders (Default = False).

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

##### Σε Basic

          Dim filesList As Variant, file As String
          FSO.FileNaming = "SYS"
          ' Returns all files matching the "*.txt" filter, including files in subfolders
          filesList = FSO.Files("/home/user/", "*.txt", IncludeSubfolders := True)
          For Each file In filesList
              ' ...
          Next file

##### Σε Python

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

## FolderExists

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

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

### Σύνταξη:

svc.FolderExists(foldername: str): bool

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

foldername (όνομα φακέλου): Μια συμβολοσειρά που αντιπροσωπεύει τον φάκελο που πρόκειται να δοκιμαστεί.

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

##### Σε Basic

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

##### Σε Python

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

## GetBaseName

Επιστρέφει το BaseName (ίσο με το τελευταίο στοιχείο) ενός ονόματος φακέλου ή αρχείου, χωρίς την επέκτασή του.

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

### Σύνταξη:

svc.GetBaseName(filename: str): str

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

filename (όνομα αρχείου): Μια συμβολοσειρά που αντιπροσωπεύει το όνομα του αρχείου και τη διαδρομή του.

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

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

##### Σε 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(fs.GetBaseName("/home/user/Documents")) # "Documents"
          bas.MsgBox(fs.GetBaseName("/home/user/Documents/my_file.ods")) # "my_file"

## GetExtension

Επιστρέφει το τμήμα επέκτασης ενός ονόματος αρχείου ή φακέλου χωρίς τον χαρακτήρα της τελείας ".".

Η μέθοδος δεν ελέγχει την ύπαρξη του καθορισμένου αρχείου ή φακέλου.

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

### Σύνταξη:

svc.GetExtension(filename: str): str

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

filename (όνομα αρχείου): Μια συμβολοσειρά που αντιπροσωπεύει το όνομα του αρχείου και τη διαδρομή του.

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

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

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

## GetFileLen

Η ενσωματωμένη συνάρτηση της Basic FileLen επιστρέφει τον αριθμό των byte που περιέχονται σε ένα αρχείο ως τιμή Long, δηλαδή έως 2 GB.

Η μέθοδος GetFileLen μπορεί να χειριστεί αρχεία με πολύ μεγαλύτερα μεγέθη επιστρέφοντας μια τιμή Currency.

### Σύνταξη:

svc.GetFileLen(filename: str): num

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

filename: Μια συμβολοσειρά που αντιπροσωπεύει ένα υπάρχον αρχείο.

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

##### Σε Basic

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

##### Σε Python

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

## GetFileModified

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

### Σύνταξη:

svc.GetFileModified(filename: str): datetime

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

filename: Μια συμβολοσειρά που αντιπροσωπεύει ένα υπάρχον αρχείο.

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

##### Σε Basic

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

##### Σε Python

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

## GetName

Επιστρέφει το τελευταίο στοιχείο ενός ονόματος αρχείου ή φακέλου στην εγγενή μορφή του λειτουργικού συστήματος.

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

### Σύνταξη:

svc.GetName(filename: str): str

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

filename (όνομα αρχείου): Μια συμβολοσειρά που αντιπροσωπεύει το όνομα του αρχείου και τη διαδρομή του.

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

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

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

## GetParentFolderName

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

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

### Σύνταξη:

svc.GetParentFolderName(filename: str): str

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

filename (όνομα αρχείου): Μια συμβολοσειρά με το όνομα του αρχείου ή του φακέλου που πρόκειται να αναλυθεί.

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

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

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

## GetTempName

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

By default, the returned file name does not have an extension. Use the extension parameter to specify the extension of the file name to be generated.

The folder part of the returned string is the system's temporary folder.

Η μέθοδος δεν δημιουργεί το προσωρινό αρχείο.

### Σύνταξη:

svc.GetTempName(extension: str): str

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

extension: The extension of the temporary file name (Default = "").

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

##### Σε Basic

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

##### Σε Python

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

## HashFile

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

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

Οι αλγόριθμοι κατακερματισμού που υποστηρίζονται είναι: MD5, SHA1, SHA224, SHA256, SHA384 και SHA512.

### Σύνταξη:

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

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

filename: Μια συμβολοσειρά που αντιπροσωπεύει ένα υπάρχον αρχείο.

algorithm (αλγόριθμος): Ένας από τους υποστηριζόμενους αλγόριθμους.

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

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

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

## MoveFile

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

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

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

### Σύνταξη:

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

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

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

destination (προορισμός): Εάν η source είναι FileName, τότε αυτή η παράμετρος υποδεικνύει τη νέα διαδρομή και το όνομα αρχείου του μεταφερόμενου αρχείου.

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

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

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

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

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

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

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

## MoveFolder

Μετακινεί έναν ή περισσότερους φακέλους από μια θέση σε άλλη. Επιστρέφει True (σωστό) εάν έχει μετακινηθεί τουλάχιστον ένας φάκελος ή False εάν προέκυψε σφάλμα.

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

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

### Σύνταξη:

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

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

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

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

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

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

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

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

On Windows, forward slashes "/" are converted to backward slashes "\".

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.

### Σύνταξη:

svc.Normalize(filename: str): str

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

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

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

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

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

Ανοίγει ένα αρχείο και επιστρέφει ένα αντικείμενο TextStream που μπορεί να χρησιμοποιηθεί για ανάγνωση, εγγραφή ή προσθήκη στο αρχείο.

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

Η μέθοδος επιστρέφει ένα αντικείμενο Null (στη Basic) ή None (Κανένα) (στην Python) εάν παρουσιαστεί σφάλμα.

### Σύνταξη:

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

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

filename (όνομα αρχείου): Προσδιορίζει το αρχείο που θα ανοίξει.

iomode: Υποδεικνύει τη λειτουργία εισόδου/εξόδου. Μπορεί να είναι μία από τις τρεις σταθερές: svc.ForReading (προεπιλογή), svc.ForWriting ή svc.ForAppending.

create (δημιουργία): Τιμή Μπουλ που υποδεικνύει εάν ένα νέο αρχείο μπορεί να δημιουργηθεί εάν το καθορισμένο filename (όνομα αρχείου) δεν υπάρχει:

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

- Εάν είναι False τότε δεν δημιουργούνται νέα αρχεία (προεπιλογή).

encoding (κωδικοποίηση): Το σύνολο των χαρακτήρων που θα χρησιμοποιηθεί. Η προεπιλεγμένη κωδικοποίηση είναι "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

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

## PickFile

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

Εάν έχει ρυθμιστεί η λειτουργία SAVE (ΑΠΟΘΗΚΕΥΣΗ) και υπάρχει το επιλεγμένο αρχείο, θα εμφανιστεί ένα προειδοποιητικό μήνυμα.

### Σύνταξη:

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

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

defaultfile (προεπιλεγμένο αρχείο): Αυτό το όρισμα είναι μια συμβολοσειρά που αποτελείται από έναν φάκελο και ένα όνομα αρχείου:

- Το τμήμα φακέλου υποδεικνύει τον φάκελο που θα εμφανιστεί όταν ανοίξει το παράθυρο διαλόγου (προεπιλογή = ο τελευταίος επιλεγμένος φάκελος).

- Το τμήμα αρχείου προσδιορίζει το προεπιλεγμένο αρχείο για άνοιγμα ή αποθήκευση.

mode (λειτουργία): Μια τιμή συμβολοσειράς που μπορεί να είναι είτε "OPEN" (για αρχεία εισόδου) ή "SAVE" (για αρχεία εξόδου). Η προεπιλεγμένη τιμή είναι "OPEN".

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

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

Τα παρακάτω παραδείγματα ανοίγουν μια επιλογή αρχείων με εφαρμοσμένο το φίλτρο "txt".

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

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

## PickFolder

Ανοίγει ένα πλαίσιο διαλόγου για να επιλέξετε έναν φάκελο.

### Σύνταξη:

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

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

defaultfolder (προεπιλεγμένος φάκελος): Μια συμβολοσειρά που περιέχει το όνομα του φακέλου που θα εμφανιστεί όταν ανοίξει το παράθυρο διαλόγου (προεπιλογή = ο τελευταίος επιλεγμένος φάκελος).

freetext (ελεύθερο κείμενο): Κείμενο προς εμφάνιση στο παράθυρο διαλόγου (προεπιλογή = "").

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

          ' Basic
          aFolder = FSO.PickFolder("C:\Documents", "Επιλέξτε έναν φάκελο ή πατήστε Ακύρωση")

          # Python
          aFolder = fs.PickFolder(r"C:\Documents", "Επιλέξτε έναν φάκελο, ή πατήστε Άκυρο")

## SubFolders

Επιστρέφει έναν πίνακα συμβολοσειρών με βάση το μηδέν που αντιστοιχεί στους φακέλους που είναι αποθηκευμένοι σε ένα δεδομένο foldername (όνομα φακέλου).

Ο κατάλογος μπορεί να φιλτραριστεί με χαρακτήρες υποκατάστασης.

### Σύνταξη:

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

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

foldername (όνομα φακέλου): Μια συμβολοσειρά που αντιπροσωπεύει έναν φάκελο. Ο φάκελος πρέπει να υπάρχει. Το foldername δεν πρέπει να προσδιορίζει αρχείο.

filter (φίλτρο): Μια συμβολοσειρά που περιέχει χαρακτήρες υποκατάστασης ("?" και "*") που θα εφαρμοστεί στον κατάλογο φακέλων που προκύπτει (προεπιλογή = "").

includesubfolders: Set this argument to True to include the contents of subfolders (Default = False).

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

##### Σε Basic

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

##### Σε Python

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

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

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

Υπηρεσία ScriptForge.TextStream

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

Πρόταση Open