וובמאסטר - תיכנות ובניית אתרים

מדריך FSO - האובייקט FileSystemObject

BuildHome/‏ 7 מרץ, 2003
F+
F-
האובייקט FSO בשמו המלא FileSystemObject מאפשר לגשת לקובצי המערכת בשרת.
האובייקט מאפשר לבצע שינויים בקבצים,תקיות והגדרות.
בעזרת האובייקט ניתן להשיג מידע אודות קבצים (שמות, נתיבים, גדלים וכו'), תקיות (שמות, גדלים, הגדרות) ועוד.
לאובייקט קיימים 25 שיטות ומאפיין אחד.

דוגמא לשימוש באובייקט:

VBScriptJScript
Dim FSO,theFile
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set theFile = FSO.CreateTextFile("c:\theFile.txt",True)
theFile.WriteLine("הקובץ נוצר.")
theFile.Close
Set theFile = Nothing
Set FSO = Nothing 
בדוגמא יצרנו את האובייקט ויצרנו אובייקט נוסף עבור ניהול הקובץ שאנחנו יוצרים בעזרת האובייקט FSO וכתבנו שורת טקסט לתוך הקובץ החדש שיצרנו.
לאחר כל הפעולות יש לסגור ולאפס אובייקטים.

האוסף Drives:

המאפיין מחזיר אוסף כוננים הקיימים בשרת.
בעזרת יצירת אובייקט ולולאה נוכל לעבור על כל הכוננים הקיימים ועל מאפייניהם.

דוגמא לשימוש:

VBScriptJScript
Dim FSO, Drives
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Drives = FSO.Drives
For Each Drive In Drives
  Response.Write Drive.DriveLetter &","
Next
Set Drives = Nothing
Set FSO = Nothing 
בדוגמא הרצנו לולאה עבור כל אוסף הכוננים והדפסנו את שם כל כונן.
הפלט בדוגמא אמור להיות דומה אל A,C,D,E,F (תלוי בכוננים הקיימים בשרת).

השיטה BuildPath:

השיטה מחזירה נתיב קיים ומצרפת לו שם תקיה המוגדרת מראש.

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Response.Write FSO.BuildPath("c:\folder","newFolder")
Set FSO = Nothing 
בדוגמא הוספנו לנתיב המוגדר את התקיה newFolder ולכן הפלט בדוגמא יהיה c:\folder\newFolder.

השיטה CopyFile:

השיטה מעתיקה קובץ מנתיב מסוים לנתיב אחר.

לשיטה קיים מאפיין רשות (לא חובה לציינו) שמאפשר לכתוב/לא לכתוב על הקובץ במידה והינו קיים. המאפיין נכנס בסוף שורת השיטה.

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
FSO.CopyFile "C:\file.txt","C:\copyFile.txt",True
Set FSO = Nothing 
בדוגמא העתקנו את הקובץ file.txt מכונן C:\ עם השם copyFile.txt והגדרנו שבמידה והקובץ כבר קיים בנתיב הרצוי להעתקה הקובץ ייכתב על הקיים.

השיטה CopyFolder:

השיטה מעתיקה תקיה מנתיב מסוים לנתיב אחר.
לשיטה קיים מאפיין רשות (לא חובה לציינו) שמאפשר לכתוב/לא לכתוב על התקיה במידה והינה קיימת. המאפיין נכנס בסוף שורת השיטה.

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
FSO.CopyFolder "C:\folder","C:\copyFolder",True
Set FSO = Nothing 
בדוגמא העתקנו את התקיה folder מכונן C:\ עם השם copyFolder והגדרנו שבמידה והתקיה כבר קיימת בנתיב הרצוי להעתקה התקיה תיכתב על הקיימת.
יש לציין שניתן להעתיק את כל התקיות הנמצאות בנתיב מסוים לנתיב אחר באמצעות הסימן כוכבית, לדוגמא: C:\* (כל התקיות בכונן C:\ יועתקו לנתיב המוגדר).

השיטה CreateFolder:

השיטה מאפשרת ליצור תקיה בנתיב מסוים בצירוף שמה.

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
FSO.CreateFolder "C:\newFolder"
Set FSO = Nothing 
בדוגמא יצרנו את התקיה newFolder בכונן C:\.

השיטה CreateTextFile:

השיטה מאפשרת ליצור קובץ בנתיב המוגדר.
לשיטה קיימים 3 הגדרות:
  • שם הקובץ - שם הקובץ שניצור (חובה)
  • כתיבה על קיים - במידה והקובץ כבר קיים, האם תתבצע כתיבה מחדש (?) (לא חובה)
  • יוניקוד - האם הקובץ שניצור יהיה בפורמט יוניקוד (לא חובה)
ההגדרות של כתיבה על קיים ויוניקוד הינם מסוג בוליאני בלבד (True/False).

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
FSO.CreateTextFile "C:\myFile.txt",True,False
Set FSO = Nothing 
בדוגמא יצרנו את הקובץ myFile.txt בכונן C:\ והגדרנו שבמידה והקובץ קיים הקובץ החדש ייווצר עליו והקובץ לא הוגדר בפורמט יוניקוד.

השיטה DeleteFile:

השיטה מבצעת מחיקת קובץ מהנתיב המוגדר.
קיים תת מאפיין הקובע אם המחיקה תבצע "הכרחה" במידה והקובץ הוגדר לקריאה בלבד.
סוג המאפיין הוא בוליאני (True/False) וערכו ברירת המחדל הוא False. אין חובה לציין מאפיין זה.
דוגמא לשימוש:
VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
FSO.DeleteFile "C:\file.txt",False
Set FSO = Nothing 
בדוגמא מחקנו את הקובץ file.txt הנמצא בכונן C:\ והגדרנו במחיקה שלא ימחק את הקובץ במידה והינו לקריאה בלבד.

השיטה DeleteFolder:

השיטה מבצעת מחיקת תקיה מהנתיב המוגדר.
קיים תת מאפיין הקובע אם המחיקה תבצע "הכרחה" במידה והתקיה הוגדרה לקריאה בלבד.
סוג המאפיין הוא בוליאני (True/False) וערכו ברירת המחדל הוא False. אין חובה לציין מאפיין זה.

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
FSO.DeleteFolder "C:\folder",False
Set FSO = Nothing 
בדוגמא מחקנו את התקיה folder הנמצאת בכונן C:\ והגדרנו במחיקה שלא ימחק את התקיה במידה והינה לקריאה בלבד.

השיטה DriveExists:

השיטה מחזירה האם הכונן המוגדר קיים או לא כערך בוליאני (true/false).

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If FSO.DriveExists("C:") Then
  Response.Write "הכונן קיים"
Else
  Response.Write "הכונן לא קיים"
End If
Set FSO = Nothing 
בדוגמא בדקנו האם הכונן C: קיים והדפסנו פלט בהתאם לתנאי.

השיטה FileExists:

השיטה מחזירה האם הקובץ המוגדר קיים או לא כערך בוליאני (true/false).

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If FSO.FileExists("C:\file.txt") Then
    Response.Write "הקובץ קיים"
Else
    Response.Write "הקובץ לא קיים"
End If
Set FSO = Nothing 
בדוגמא בדקנו האם הקובץ file.txt קיים והדפסנו פלט בהתאם לתנאי.

השיטה FolderExists:

השיטה מחזירה האם הקובץ המוגדר קיים או לא כערך בוליאני (true/false).

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists("C:\folder") Then
    Response.Write "התקיה קיימת"
Else
    Response.Write "התקיה לא קיימת"
End If
Set FSO = Nothing 
בדוגמא בדקנו האם התקיה folder קיימת והדפסנו פלט בהתאם לתנאי.

השיטה GetAbsolutePathName:

השיטה מחזירה נתיב מלא של התקיה אותה הגדרנו לשיטה.

לשם הדוגמא בטבלה ובקוד, נניח שהנתיב הנוכחי הוא "C:\theFolder\subFolder".

נתיב (VBScript) נתיב (JScript) הערך המוחזר
C:\ C:\\ C:
..\ ..\\ C:\theFolder
anotherFolder anotherFolder C:\theFolder\subFolder\anotherFolder
C: C: C:\theFolder\subFolder
דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Response.Write FSO.GetAbsolutePathName("C:\")
Response.Write FSO.GetAbsolutePathName("..\")
Response.Write FSO.GetAbsolutePathName("anotherFolder")
Response.Write FSO.GetAbsolutePathName("C:")
Set FSO = Nothing 
בדוגמא הדפסנו ארבעה דוגמאות לנתיבים, כפי שכתוב בטבלה לעיל.
הערכים המוחזרים עבור כל הדפסת נתיב כתובים בטבלה.

השיטה GetBaseName:

השיטה מחזירה את שם הקובץ המדויק (ללא סיומת) מהנתיב המוגדר.
השיטה מסירה את כל הערכים הנמצאים לפני ואחרי שם הקובץ (נתיב הקובץ וסיומת) ואינה בודקת אם הקובץ אכן קיים.
השיטה עובדת על נתיב קובץ ותקיה כאחד.

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Response.Write FSO.GetBaseName("C:\myfolder\myFile.html")
Set FSO = Nothing 
בדוגמא הדפסנו את השם המדויק של הקובץ המצוין בדוגמא והפלט שנקבל יהיה: myFile.

השיטה GetDrive:

השיטה מחזירה אובייקט המאפשר לשלוט על שיטות/מאפייני הכונן.
שם הכונן יכול להיכתב כאות ("C") או עם נקודתיים ("C:") או כונן רשת ("\\DriveName").

דוגמא לשימוש:

VBScriptJScript
Dim FSO, Drive
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Drive = FSO.GetDrive("C")
Response.Write Drive.TotalSize/1024
Set Drive = Nothing
Set FSO = Nothing 
בדוגמא השתמש באובייקט על הכונן "C" והדפסנו מאפיין אחד שמציג את גודל הכונן בקילובייט.

השיטה GetDriveName:

השיטה מחזירה את שם הכונן (בלבד) מהנתיב המצוין.

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Response.Write FSO.GetDriveName("C:\myFolder\myFile.html")
Set FSO = Nothing 
בדוגמא הגדרנו נתיב לקובץ מסוים הנמצא בכונן "C" והפלט בדוגמא יהיה: "C:".

השיטה GetExtensionName:

השיטה מחזירה את סיומת הקובץ/התקיה מהנתיב המוגדר.

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Response.Write FSO.GetExtensionName("C:\myFolder\myFile.html")
Set FSO = Nothing 
בדוגמא הגדרנו נתיב לקובץ מסוים והפלט בדוגמא יהיה: "html".

השיטה GetFile:

השיטה מחזירה את אובייקט הקובץ המאפשרת לשלוט על מאפייני/שיטות הקובץ.

דוגמא לשימוש:

VBScriptJScript
Dim FSO, File
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set File = FSO.GetFile("C:\myFolder\myFile.html")
Response.Write File.Name
Set File = Nothing
Set FSO = Nothing 
בדוגמא הדפסנו בעזרת האובייקט את אחד ממאפייני הקובץ והפלט בדוגמא יהיה: "myFile.html".

השיטה GetFileName

השיטה מחזירה את שם הקובץ (כולל סיומת) מן הנתיב המוגדר.

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Response.Write FSO.GetFileName("C:\myFolder\myFile.html")
Set FSO = Nothing 
בדוגמא הדפסנו את שם הקובץ מן הנתיב המלא שלו והפלט בדוגמא יהיה: "myFile.html".

השיטה GetFileVersion

השיטה מחזירה את גרסת הקובץ המצוין לפי הנתיב שהוגדר.
בחלק מן הגרסאות של scripting engine המאפיין אינו עובד והפלט המוחזר יהיה ריק (אפס תווים).

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Response.Write FSO.GetFileVersion("C:\myFolder\myFile.html")
Set FSO = Nothing 
בדוגמא הדפסנו את גרסת הקובץ. הפלט בדוגמא יהיה ריק (אפס תווים) או תוצג גרסת הקובץ (לדוגמא: 1.1).

השיטה GetFolder

השיטה מחזירה אובייקט תקיה המאפשר לשלוט על מאפייני/שיטות התקיה.

דוגמא לשימוש:

VBScriptJScript
Dim FSO, Folder
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder(path)
Response.Write Folder.Size/1024
Set Folder = Nothing
Set FSO = Nothing 
בדוגמא השתמשנו באובייקט התקיה והדפסנו את אחד ממאפייניה והפלט בדוגמא יהיה גודל התקיה בקילובייט.

השיטה GetParentFolderName:

השיטה מחזירה את שם התקיה הראשית של הנתיב הנוכחי.

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Response.Write FSO.GetParentFolderName("C:\myFolder\subFolder")
Set FSO = Nothing 
בדוגמא הדפסנו את המאפיין והגדרנו לו נתיב של תקיה מסוימת והפלט בדוגמא יהיה: "C:\myFolder".

השיטה GetSpecialFolder:

השיטה מחזירה נתיב לפי מספר מוגדר מראש.

ערך שם הערך תאור
0 תקיית וינדוס תקיית וינדוס הכוללת את הקבצים של מערכת ההפעלה.
1 תקיית מערכת תקיית המערכת כוללת קבצים (כגון פונטים), תקיות, יישומים וכו'.
2 תקיית קבצים זמניים תקיית קבצים הזמניים כוללת את כל הקבצים הזמניים של הדפדפן והמחשב.


ניתן להשתמש על השיטה כמו על השיטה GetFolder ולאפשר לשלוט ולנהל (ליצור,למחוק וכו') קבצים מאותה תקיה.

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Response.Write FSO.GetSpecialFolder(0)
Set FSO = Nothing 
בדוגמא הדפסנו את הערך של תקיית וינדוס והפלט בדוגמא יהיה: "C:\WINDOWS".

השיטה GetTempName:

השיטה מחזירה שם קובץ מתקיית הקבצים הזמניים בצורה רנדומלית (אקראית).
בכל פעם יוצג קובץ אחר. השיטה אינה יוצרת את הקובץ אלא מציגה בכל פעם קובץ אשר כבר קיים.

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Response.Write FSO.GetTempName;
Set FSO = Nothing 
בדוגמא הדפסנו את המאפיין ודוגמא לפלט היא: "radA5054.tmp".

השיטה MoveFile:

השיטה מעתיקה את הקובץ מהנתיב הנוכחי אל נתיב חדש.
השיטה זהה לשיטה הקיימת באובייקט הקובץ (File).
באמצעות השיטה ניתן להעביר את הקובץ אל נתיב אחר כולל שינוי שמו.

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
FSO.MoveFile "C:\myFolder\myFile.txt","C:\newFolder\myFile.txt"
Set FSO = Nothing 
בדוגמא העברנו את הקובץ myFile.txt מהתקיה myFolder אל newFolder.

השיטה MoveFolder:

השיטה מעתיקה את התקיה מהנתיב הנוכחי אל נתיב חדש.
השיטה זהה לשיטה הקיימת באובייקט התקיה (Folder).
באמצעות השיטה ניתן להעביר את התקיה אל נתיב אחר כולל שינוי שמה.

דוגמא לשימוש:

VBScriptJScript
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
FSO.MoveFolder "C:\myFolder","C:\newFolder"
Set FSO = Nothing 
בדוגמא העברנו את התקיה מהנתיב C:\myFolder אל הנתיב C:\newFolder.

השיטה OpenTextFile:

השיטה מחזירה אובייקט לטיפול בקבצים ומאפשרת לנו לשלוח על מאפייני/שיטות הקובץ המוגדר.

הגדרות אופציונאליים לשיטה (לפי סדר כתיבתם):
  • mode - הגדרה אשר תקבע לקובץ הרשאת קריאה,כתיבה או הוספה לקובץ.
  • create - ערך בוליאני הקובע האם הקובץ ייווצר במידה ואינו קיים או לא (True/False).
  • format - סוג פתיחת פורמט הקובץ.
א. מצב קלט/פלט (mode):

שם ייצוגי ערך תאור
קריאה 1 קובץ עבור קריאה בלבד. לא ניתן לכתוב לתוכו.
כתיבה 2 קובץ עבור כתיבה. במידה והקובץ קיים תוכנו החדש ייכתב על תוכנו הישן.
הוספת נתונים 8 פתיחת הקובץ עבור הוספת נתונים מסוף הקובץ.


ב. פורמט פתיחת הקובץ (format):

שם ייצוגי ערך תאור
ברירת מחדל -2 פותח את הקובץ בשימוש ברירת מחדל מערכת.
יוניקוד -1 פותח את הקובץ כיוניקוד (Unicode)
אסקי 0 פותח את הקובץ כאסקי (ASCII)
דוגמא לשימוש:

VBScriptJScript
Dim FSO, File
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set File = FSO.OpenTextFile("C:\myFolder\myFile.txt",8,True,0)
File.WriteLine "hello"
File.Close
Set File = Nothing
Set FSO = Nothing 
בדוגמא פתחנו את הקובץ myFile.txt והגדרנו אותו להוספת נתונים ופורמט אסקי.
לאחר הגדרת האובייקט הוספנו לסוף הקובץ שורה בה כתוב "hello".

BuildHome

מפתח אתרים ואפליקציות ווב מנוסה
אתר: http://www.torec.net
תגיות: ASP‏  /  FSO‏  /  File‏  /  FileSystemObject‏  /  קבצים‏  /  FileSystemObject‏  

תגובות בפייסבוק

תגובות למאמר



עוד במדריך

תגיות פופולאריות

X
הצטרף לעמוד שלנו בפייסבוק להישאר מעודכן!
וובמאסטר © כל הזכויות שמורות