מדריך FSO – האובייקט FileSystemObject
האובייקט FSO בשמו המלא FileSystemObject מאפשר לגשת לקובצי המערכת בשרת.
האובייקט מאפשר לבצע שינויים בקבצים,תקיות והגדרות.
בעזרת האובייקט ניתן להשיג מידע אודות קבצים (שמות, נתיבים, גדלים וכו'), תקיות (שמות, גדלים, הגדרות) ועוד.
לאובייקט קיימים 25 שיטות ומאפיין אחד.
דוגמא לשימוש באובייקט:
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
var fso = new ActiveXObject("Scripting.FileSystemObject"); var theFile = fso.CreateTextFile("c:theFile.txt",true); theFile.WriteLine("הקובץ נוצר."); theFile = null; delete theFile; fso = null; delete fso;
בדוגמא יצרנו את האובייקט ויצרנו אובייקט נוסף עבור ניהול הקובץ שאנחנו יוצרים בעזרת האובייקט FSO וכתבנו שורת טקסט לתוך הקובץ החדש שיצרנו.
לאחר כל הפעולות יש לסגור ולאפס אובייקטים.
האוסף Drives:
המאפיין מחזיר אוסף כוננים הקיימים בשרת.
בעזרת יצירת אובייקט ולולאה נוכל לעבור על כל הכוננים הקיימים ועל מאפייניהם.
דוגמא לשימוש:
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
var fso = new ActiveXObject("Scripting.FileSystemObject"); var drives = new Enumerator(fso.Drives); for(;!drives.atEnd();drives.moveNext()) { Response.Write(drives.item().DriveLetter+","); } drives = null; delete drives; fso = null; delete fso;
בדוגמא הרצנו לולאה עבור כל אוסף הכוננים והדפסנו את שם כל כונן.
הפלט בדוגמא אמור להיות דומה אל A,C,D,E,F (תלוי בכוננים הקיימים בשרת).
השיטה BuildPath:
השיטה מחזירה נתיב קיים ומצרפת לו שם תקיה המוגדרת מראש.
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") Response.Write FSO.BuildPath("c:folder","newFolder") Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); Response.Write(fso.BuildPath("c:folder","newFolder")); fso = null; delete fso;
בדוגמא הוספנו לנתיב המוגדר את התקיה newFolder ולכן הפלט בדוגמא יהיה c:foldernewFolder.
השיטה CopyFile:
השיטה מעתיקה קובץ מנתיב מסוים לנתיב אחר.
לשיטה קיים מאפיין רשות (לא חובה לציינו) שמאפשר לכתוב/לא לכתוב על הקובץ במידה והינו קיים. המאפיין נכנס בסוף שורת השיטה.
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") FSO.CopyFile "C:file.txt","C:copyFile.txt",True Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.CopyFile("C:\file.txt","C:\copyFile.txt",true); fso = null; delete fso;
בדוגמא העתקנו את הקובץ file.txt מכונן C: עם השם copyFile.txt והגדרנו שבמידה והקובץ כבר קיים בנתיב הרצוי להעתקה הקובץ ייכתב על הקיים.
השיטה CopyFolder:
השיטה מעתיקה תקיה מנתיב מסוים לנתיב אחר.
לשיטה קיים מאפיין רשות (לא חובה לציינו) שמאפשר לכתוב/לא לכתוב על התקיה במידה והינה קיימת. המאפיין נכנס בסוף שורת השיטה.
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") FSO.CopyFolder "C:folder","C:copyFolder",True Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.CopyFolder("C:\folder","C:\copyFolder",true); fso = null; delete fso;
בדוגמא העתקנו את התקיה folder מכונן C: עם השם copyFolder והגדרנו שבמידה והתקיה כבר קיימת בנתיב הרצוי להעתקה התקיה תיכתב על הקיימת.
יש לציין שניתן להעתיק את כל התקיות הנמצאות בנתיב מסוים לנתיב אחר באמצעות הסימן כוכבית, לדוגמא: C:* (כל התקיות בכונן C: יועתקו לנתיב המוגדר).
השיטה CreateFolder:
השיטה מאפשרת ליצור תקיה בנתיב מסוים בצירוף שמה.
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") FSO.CreateFolder "C:newFolder" Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.CreateFolder("C:\newFolder"); fso = null; delete fso;
בדוגמא יצרנו את התקיה newFolder בכונן C:.
השיטה CreateTextFile:
השיטה מאפשרת ליצור קובץ בנתיב המוגדר.
לשיטה קיימים 3 הגדרות:
- שם הקובץ – שם הקובץ שניצור (חובה)
- כתיבה על קיים – במידה והקובץ כבר קיים, האם תתבצע כתיבה מחדש (?) (לא חובה)
- יוניקוד – האם הקובץ שניצור יהיה בפורמט יוניקוד (לא חובה)
ההגדרות של כתיבה על קיים ויוניקוד הינם מסוג בוליאני בלבד (True/False).
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") FSO.CreateTextFile "C:myFile.txt",True,False Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.CreateTextFile("C:\myFile.txt",true,false); fso = null; delete fso;
בדוגמא יצרנו את הקובץ myFile.txt בכונן C: והגדרנו שבמידה והקובץ קיים הקובץ החדש ייווצר עליו והקובץ לא הוגדר בפורמט יוניקוד.
השיטה DeleteFile:
השיטה מבצעת מחיקת קובץ מהנתיב המוגדר.
קיים תת מאפיין הקובע אם המחיקה תבצע "הכרחה" במידה והקובץ הוגדר לקריאה בלבד.
סוג המאפיין הוא בוליאני (True/False) וערכו ברירת המחדל הוא False. אין חובה לציין מאפיין זה.
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") FSO.DeleteFile "C:file.txt",False Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.DeleteFile("C:\file.txt",false); fso = null; delete fso;
בדוגמא מחקנו את הקובץ file.txt הנמצא בכונן C: והגדרנו במחיקה שלא ימחק את הקובץ במידה והינו לקריאה בלבד.
השיטה DeleteFolder:
השיטה מבצעת מחיקת תקיה מהנתיב המוגדר.
קיים תת מאפיין הקובע אם המחיקה תבצע "הכרחה" במידה והתקיה הוגדרה לקריאה בלבד.
סוג המאפיין הוא בוליאני (True/False) וערכו ברירת המחדל הוא False. אין חובה לציין מאפיין זה.
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") FSO.DeleteFolder "C:folder",False Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.DeleteFolder("C:\folder",false); fso = null; delete fso;
בדוגמא מחקנו את התקיה folder הנמצאת בכונן C: והגדרנו במחיקה שלא ימחק את התקיה במידה והינה לקריאה בלבד.
השיטה DriveExists:
השיטה מחזירה האם הכונן המוגדר קיים או לא כערך בוליאני (true/false).
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") If FSO.DriveExists("C:") Then Response.Write "הכונן קיים" Else Response.Write "הכונן לא קיים" End If Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); if(fso.DriveExists("C:")) Response.Write("הכונן קיים"); else Response.Write("הכונן לא קיים"); fso = null; delete fso;
בדוגמא בדקנו האם הכונן C: קיים והדפסנו פלט בהתאם לתנאי.
השיטה FileExists:
השיטה מחזירה האם הקובץ המוגדר קיים או לא כערך בוליאני (true/false).
דוגמא לשימוש:
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
var fso = new ActiveXObject("Scripting.FileSystemObject"); if(fso.FileExists("C:file.txt")) Response.Write("הקובץ קיים"); else Response.Write("הקובץ לא קיים"); fso = null; delete fso;
בדוגמא בדקנו האם הקובץ file.txt קיים והדפסנו פלט בהתאם לתנאי.
השיטה FolderExists:
השיטה מחזירה האם הקובץ המוגדר קיים או לא כערך בוליאני (true/false).
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") If FSO.FolderExists("C:folder") Then Response.Write "התקיה קיימת" Else Response.Write "התקיה לא קיימת" End If Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); if(fso.FolderExists("C:folder")) Response.Write("התקיה קיימת"); else Response.Write("התקיה לא קיימת"); fso = null; delete fso;
בדוגמא בדקנו האם התקיה folder קיימת והדפסנו פלט בהתאם לתנאי.
השיטה GetAbsolutePathName:
השיטה מחזירה נתיב מלא של התקיה אותה הגדרנו לשיטה.
לשם הדוגמא בטבלה ובקוד, נניח שהנתיב הנוכחי הוא "C:theFoldersubFolder".
נתיב (VBScript) | נתיב (JScript) | הערך המוחזר |
C: | C:\ | C: |
.. | ..\ | C:theFolder |
anotherFolder | anotherFolder | C:theFoldersubFolderanotherFolder |
C: | C: | C:theFoldersubFolder |
דוגמא לשימוש:
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
var fso = new ActiveXObject("Scripting.FileSystemObject"); Response.Write(fso.GetAbsolutePathName("C:\")); Response.Write(fso.GetAbsolutePathName("..\")); Response.Write(fso.GetAbsolutePathName("anotherFolder")); Response.Write(fso.GetAbsolutePathName("C:")); fso = null; delete fso;
בדוגמא הדפסנו ארבעה דוגמאות לנתיבים, כפי שכתוב בטבלה לעיל.
הערכים המוחזרים עבור כל הדפסת נתיב כתובים בטבלה.
השיטה GetBaseName:
השיטה מחזירה את שם הקובץ המדויק (ללא סיומת) מהנתיב המוגדר.
השיטה מסירה את כל הערכים הנמצאים לפני ואחרי שם הקובץ (נתיב הקובץ וסיומת) ואינה בודקת אם הקובץ אכן קיים.
השיטה עובדת על נתיב קובץ ותקיה כאחד.
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") Response.Write FSO.GetBaseName("C:myfoldermyFile.html") Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); Response.Write(fso.GetBaseName("C:\myfolder\myFile.html")); fso = null; delete fso;
בדוגמא הדפסנו את השם המדויק של הקובץ המצוין בדוגמא והפלט שנקבל יהיה: myFile.
השיטה GetDrive:
השיטה מחזירה אובייקט המאפשר לשלוט על שיטות/מאפייני הכונן.
שם הכונן יכול להיכתב כאות ("C") או עם נקודתיים ("C:") או כונן רשת ("\DriveName").
דוגמא לשימוש:
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
var fso = new ActiveXObject("Scripting.FileSystemObject"); var drive = fso.GetDrive("C"); Response.Write(drive.TotalSize/1024); drive = null; delete drive; fso = null; delete fso;
בדוגמא השתמש באובייקט על הכונן "C" והדפסנו מאפיין אחד שמציג את גודל הכונן בקילובייט.
השיטה GetDriveName:
השיטה מחזירה את שם הכונן (בלבד) מהנתיב המצוין.
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") Response.Write FSO.GetDriveName("C:myFoldermyFile.html") Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); Response.Write(fso.GetDriveName("C:\myFolder\myFile.html")); fso = null; delete fso;
בדוגמא הגדרנו נתיב לקובץ מסוים הנמצא בכונן "C" והפלט בדוגמא יהיה: "C:".
השיטה GetExtensionName:
השיטה מחזירה את סיומת הקובץ/התקיה מהנתיב המוגדר.
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") Response.Write FSO.GetExtensionName("C:myFoldermyFile.html") Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); Response.Write(fso.GetExtensionName("C:\myFolder\myFile.html")); fso = null; delete fso;
בדוגמא הגדרנו נתיב לקובץ מסוים והפלט בדוגמא יהיה: "html".
השיטה GetFile:
השיטה מחזירה את אובייקט הקובץ המאפשרת לשלוט על מאפייני/שיטות הקובץ.
דוגמא לשימוש:
Dim FSO, File Set FSO = Server.CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:myFoldermyFile.html") Response.Write File.Name Set File = Nothing Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); var file = fso.GetFile("C:\myFolder\myFile.html"); Response.Write(file.Name); file = null; delete file; fso = null; delete fso;
בדוגמא הדפסנו בעזרת האובייקט את אחד ממאפייני הקובץ והפלט בדוגמא יהיה: "myFile.html".
השיטה GetFileName
השיטה מחזירה את שם הקובץ (כולל סיומת) מן הנתיב המוגדר.
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") Response.Write FSO.GetFileName("C:myFoldermyFile.html") Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); Response.Write(fso.GetFileName("C:\myFolder\myFile.html")); fso = null; delete fso;
בדוגמא הדפסנו את שם הקובץ מן הנתיב המלא שלו והפלט בדוגמא יהיה: "myFile.html".
השיטה GetFileVersion
השיטה מחזירה את גרסת הקובץ המצוין לפי הנתיב שהוגדר.
בחלק מן הגרסאות של scripting engine המאפיין אינו עובד והפלט המוחזר יהיה ריק (אפס תווים).
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") Response.Write FSO.GetFileVersion("C:myFoldermyFile.html") Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); Response.Write(fso.GetFileVersion("C:\myFolder\myFile.html")); fso = null; delete fso;
בדוגמא הדפסנו את גרסת הקובץ. הפלט בדוגמא יהיה ריק (אפס תווים) או תוצג גרסת הקובץ (לדוגמא: 1.1).
השיטה GetFolder
השיטה מחזירה אובייקט תקיה המאפשר לשלוט על מאפייני/שיטות התקיה.
דוגמא לשימוש:
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
var fso = new ActiveXObject("Scripting.FileSystemObject"); var folder = fso.GetFolder(Path); Response.Write(folder.Size/1024); folder = null; delete folder; fso = null; delete fso;
בדוגמא השתמשנו באובייקט התקיה והדפסנו את אחד ממאפייניה והפלט בדוגמא יהיה גודל התקיה בקילובייט.
השיטה GetParentFolderName:
השיטה מחזירה את שם התקיה הראשית של הנתיב הנוכחי.
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") Response.Write FSO.GetParentFolderName("C:myFoldersubFolder") Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); Response.Write(fso.GetParentFolderName("C:\myFolder\subFolder")); fso = null; delete fso;
בדוגמא הדפסנו את המאפיין והגדרנו לו נתיב של תקיה מסוימת והפלט בדוגמא יהיה: "C:myFolder".
השיטה GetSpecialFolder:
השיטה מחזירה נתיב לפי מספר מוגדר מראש.
ערך | שם הערך | תאור |
0 | תקיית וינדוס | תקיית וינדוס הכוללת את הקבצים של מערכת ההפעלה. |
1 | תקיית מערכת | תקיית המערכת כוללת קבצים (כגון פונטים), תקיות, יישומים וכו'. |
2 | תקיית קבצים זמניים | תקיית קבצים הזמניים כוללת את כל הקבצים הזמניים של הדפדפן והמחשב. |
ניתן להשתמש על השיטה כמו על השיטה GetFolder ולאפשר לשלוט ולנהל (ליצור,למחוק וכו') קבצים מאותה תקיה.
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") Response.Write FSO.GetSpecialFolder(0) Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); Response.Write(fso.GetSpecialFolder(0)); fso = null; delete fso;
בדוגמא הדפסנו את הערך של תקיית וינדוס והפלט בדוגמא יהיה: "C:WINDOWS".
השיטה GetTempName:
השיטה מחזירה שם קובץ מתקיית הקבצים הזמניים בצורה רנדומלית (אקראית).
בכל פעם יוצג קובץ אחר. השיטה אינה יוצרת את הקובץ אלא מציגה בכל פעם קובץ אשר כבר קיים.
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") Response.Write FSO.GetTempName; Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); Response.Write(fso.GetTempName()); fso = null; delete fso;
בדוגמא הדפסנו את המאפיין ודוגמא לפלט היא: "radA5054.tmp".
השיטה MoveFile:
השיטה מעתיקה את הקובץ מהנתיב הנוכחי אל נתיב חדש.
השיטה זהה לשיטה הקיימת באובייקט הקובץ (File).
באמצעות השיטה ניתן להעביר את הקובץ אל נתיב אחר כולל שינוי שמו.
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") FSO.MoveFile "C:myFoldermyFile.txt","C:newFoldermyFile.txt" Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.MoveFile("C:\myFolder\myFile.txt","C:\newFolder\myFile.txt"); fso = null; delete fso;
בדוגמא העברנו את הקובץ myFile.txt מהתקיה myFolder אל newFolder.
השיטה MoveFolder:
השיטה מעתיקה את התקיה מהנתיב הנוכחי אל נתיב חדש.
השיטה זהה לשיטה הקיימת באובייקט התקיה (Folder).
באמצעות השיטה ניתן להעביר את התקיה אל נתיב אחר כולל שינוי שמה.
דוגמא לשימוש:
Dim FSO Set FSO = Server.CreateObject("Scripting.FileSystemObject") FSO.MoveFolder "C:myFolder","C:newFolder" Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.MoveFolder("C:\myFolder","C:\newFolder"); fso = null; delete fso;
בדוגמא העברנו את התקיה מהנתיב C:myFolder אל הנתיב C:newFolder.
השיטה OpenTextFile:
השיטה מחזירה אובייקט לטיפול בקבצים ומאפשרת לנו לשלוח על מאפייני/שיטות הקובץ המוגדר.
הגדרות אופציונאליים לשיטה (לפי סדר כתיבתם):
- mode – הגדרה אשר תקבע לקובץ הרשאת קריאה,כתיבה או הוספה לקובץ.
- create – ערך בוליאני הקובע האם הקובץ ייווצר במידה ואינו קיים או לא (True/False).
- format – סוג פתיחת פורמט הקובץ.
א. מצב קלט/פלט (mode):
שם ייצוגי | ערך | תאור |
קריאה | 1 | קובץ עבור קריאה בלבד. לא ניתן לכתוב לתוכו. |
כתיבה | 2 | קובץ עבור כתיבה. במידה והקובץ קיים תוכנו החדש ייכתב על תוכנו הישן. |
הוספת נתונים | 8 | פתיחת הקובץ עבור הוספת נתונים מסוף הקובץ. |
ב. פורמט פתיחת הקובץ (format):
שם ייצוגי | ערך | תאור |
ברירת מחדל | -2 | פותח את הקובץ בשימוש ברירת מחדל מערכת. |
יוניקוד | -1 | פותח את הקובץ כיוניקוד (Unicode) |
אסקי | 0 | פותח את הקובץ כאסקי (ASCII) |
דוגמא לשימוש:
Dim FSO, File Set FSO = Server.CreateObject("Scripting.FileSystemObject") Set File = FSO.OpenTextFile("C:myFoldermyFile.txt",8,True,0) File.WriteLine "hello" File.Close Set File = Nothing Set FSO = Nothing
var fso = new ActiveXObject("Scripting.FileSystemObject"); var file = fso.OpenTextFile("C:\myFolder\myFile.txt",8,true,0); file.WriteLine("hello"); file = null; delete file; fso = null; delete fso;
בדוגמא פתחנו את הקובץ myFile.txt והגדרנו אותו להוספת נתונים ופורמט אסקי.
לאחר הגדרת האובייקט הוספנו לסוף הקובץ שורה בה כתוב "hello".
תגובות בפייסבוק