VBA GetFolder & GetFile (Λήψη ιδιοτήτων αρχείου & φακέλου)

Αυτό το σεμινάριο θα δείξει πώς να χρησιμοποιήσετε τις μεθόδους GetFolder και GetFile του FileSystemObject.

Λήψη ιδιοτήτων φακέλου και αρχείου με το VBA FileSystemObject

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

Ορίστε αναφορά VBA

Πρώτον, όταν χρησιμοποιείτε το FileSystemObjects, ίσως χρειαστεί να ορίσετε μια αναφορά στη βιβλιοθήκη χρόνου εκτέλεσης σεναρίων VB: ανοίξτε το Visual Basic Editor (ALT+F11), επιλέξτε Εργαλεία> Αναφορές από το αναπτυσσόμενο μενού και επιλέξτε το πλαίσιο ελέγχου 'Microsoft Scripting Runtime'.

FileSystemObject

Δεύτερον, πρέπει να δημιουργήσετε το FileSystemObject:

12 Dim FSO ως νέο FileSystemObjectΟρισμός FSO = CreateObject ("Scripting.FileSystemObject")

Τώρα έχετε πρόσβαση στο GetFolder και στις άλλες μεθόδους FileSystemObject.

Χρήση της μεθόδου GetFolder

Αφού καθορίσετε τον φάκελο στον οποίο θέλετε να αποκτήσετε πρόσβαση

1 Ορισμός fld = FSO.GetFolder ("C: \ Src \")

μπορείτε να το αντιγράψετε:

1 fld.Copy "C: \ NewFolder \"

Κουνήσου:

1 fld.Move "C: \ NewFolder \"

Διέγραψε το:

1 fld. Διαγραφή

ή δημιουργήστε ένα νέο αρχείο κειμένου σε αυτό:

1 fld.CreateTextFile "NewTextFile.txt"

Χρησιμοποιώντας αυτήν τη μέθοδο, αποκτάτε πρόσβαση στις ιδιότητες του φακέλου όπως τα χαρακτηριστικά του (fld.Attributes), την ημερομηνία και την ώρα που δημιουργήθηκε (fld.DateCreated), τελευταία πρόσβαση (fld.DateLastAccessed), τελευταία τροποποίηση (fld.DateLastModified ), το γράμμα του δίσκου (fld.Drive), το όνομα και το σύντομο όνομα (fld.Name, fld.ShortName), η διαδρομή και η σύντομη διαδρομή του (fld.Path, fld.ShortPath), το μέγεθός του (fld.Size), το πληκτρολογήστε (fld.Type), τον γονικό φάκελό του (fld.ParentFolder), ελέγξτε αν πρόκειται για ριζικό φάκελο (fld.IsRootFolder) ή μπορείτε να κάνετε βρόχο, να μετρήσετε κ.λπ. τα αρχεία του (fld.Files) ή υποφακέλους (fld. Υποφάκελοι).

Βάζοντας όλα αυτά σε μια διαδικασία θα μοιάζει με αυτό:

123456789101112131415161718192021222324 Sub FSOGetFolder ()Dim FSO ως νέο FileSystemObjectΟρισμός FSO = CreateObject ("Scripting.FileSystemObject")Ορισμός fld = FSO.GetFolder ("C: \ Src \")Debug.Print fld.DateCreatedDebug.Print fld.DriveDebug.Print fld. ΌνομαDebug.Print fld.ParentFolderDebug.Print fld.PathDebug.Print fld.ShortPathDebug.Print fld.SizeDebug.Print fld.Files.CountDebug.Print fld. ΤύποςΓια κάθε fold In fld.SubFoldersΕντοπισμός σφαλμάτων. Πτυχή εκτύπωσης. ΌνομαΕπόμενη πάσοΓια κάθε fil In fld.FilesDebug.Print fil. ΌνομαΕπόμενο αρχείοΤέλος υπο

Λάβετε υπόψη ότι πρέπει να πατήσετε Ctrl+G για να δείτε το αποτέλεσμα της εντολής Debug.Print στο άμεσο παράθυρο VBA.

Μέθοδος GetParentFolderName

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

1234 Dim FSO ως νέο FileSystemObjectΟρισμός FSO = CreateObject ("Scripting.FileSystemObject")ParentFold = FSO.GetParentFolderName ("C: \ ParentTest \ Test \")

Το ParentFold θα είναι σε αυτήν την περίπτωση "C: \ ParentTest \".

Λάβετε υπόψη ότι αυτή η μέθοδος δεν θα επιλύσει τη διαδρομή, ούτε ελέγχει την ύπαρξη της καθορισμένης διαδρομής.

Μέθοδος GetSpecialFolder

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

1234567 Sub FSOGetSpecialFolder ()Dim FSO ως νέο FileSystemObjectΟρισμός FSO = CreateObject ("Scripting.FileSystemObject")Debug.Print FSO.GetSpecialFolder (0) ‘Το αποτέλεσμα μπορεί να είναι: C: \ Windows \ System32Τέλος υπο

Μέθοδος GetFile

Μπορείτε να χρησιμοποιήσετε τη μέθοδο GetFile με πολύ παρόμοιο τρόπο με τη μέθοδο GetFolder. Αφού καθορίσετε το αρχείο στο οποίο θέλετε να αποκτήσετε πρόσβαση

1 Ορισμός fil = FSO.GetFile ("C: \ Src \ Test.xlsx")

μπορείτε να το αντιγράψετε:

1 fil. Αντιγράψτε "C: \ Dst \"

Κουνήσου:

1 fil.Move "C: \ Dst \"

Διέγραψε το:

1 fil. Διαγραφή

ή ανοίξτε το ως αντικείμενο TextStream:

1 fil.OpenAsTextStream

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

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave