צפיות
תשובות
שלום לכולם, אני צריך עזרה אם FSO
למה אני מקבל שגיאה כאשר אני מציב את השורה הבאה
Set Drive = FSO.GetDrive(FSO.GetDriveName(Path))
להנ"ל הקוד המלא:
Dim FSO ' הגדרת האוביקט הראשי
Dim Drive ' הגדרת האוביקט של שימוש דריברים שזה אות הכונן
Dim Drives ' הגדרת האוביקט של התקנים
Dim Folder ' הגדרת אוביקט לשימוש בתיקיות
Dim Files ' הגדרת אוביקט הקבצים
Dim File ' הגדרת אוביקט הקובץ
Dim SubFolders ' הגדרת תת התיקיות
Dim SubFolder ' הגדרת התת תיקיה
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Drive = FSO.GetDrive(FSO.GetDriveName(Path))
Set Drives = FSO.Drives
Set Folder = FSO.GetFolder(Server.MapPath("/"))
Set Files = Folder.Files
Set SubFolders = Folder.SubFolders
Set Drive = Nothing
Set Drives = Nothing
Set Files = Nothing
Set SubFolders = Nothing
Set Folder = Nothing
Set FSO = Nothing
למדתי את FSO דרך האתר המצוין הזה..
16 תשובות
מוטי אנא ישר את הקוד שמאלה+הצג א…
את השגיאה שמתקבלת.
סליחה…
למה אני מקבל שגיאה כאשר אני מציב את השורה הבאה
Set Drive = FSO.GetDrive(FSO.GetDriveName(Path))
להנ"ל הקוד המלא:
Dim FSO ' הגדרת האוביקט הראשי
Dim Drive ' הגדרת האוביקט של שימוש דריברים שזה אות הכונן
Dim Drives ' הגדרת האוביקט של התקנים
Dim Folder ' הגדרת אוביקט לשימוש בתיקיות
Dim Files ' הגדרת אוביקט הקבצים
Dim File ' הגדרת אוביקט הקובץ
Dim SubFolders ' הגדרת תת התיקיות
Dim SubFolder ' הגדרת התת תיקיה
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Drive = FSO.GetDrive(FSO.GetDriveName(Path))
Set Drives = FSO.Drives
Set Folder = FSO.GetFolder(Server.MapPath("/"))
Set Files = Folder.Files
Set SubFolders = Folder.SubFolders
Set Drive = Nothing
Set Drives = Nothing
Set Files = Nothing
Set SubFolders = Nothing
Set Folder = Nothing
Set FSO = Nothing
וזה השגיאה
סוג שגיאה:
שגיאת זמן ריצה של Microsoft VBScript (0x800A0005)
ארגומנט או קריאה לפרוצדורה לא חוקיים
/fso.asp, line 13
וכמובן שורה 13 זאת השורה הראשונה שהצגתי
לא הגדרת את Path
הוא לא מכיל כלום.
תודה, שגיאה חדשה כאת
למה אני מקבל שגיאה הקוד הנ"ל
Response.Write ("שטח פנוי: " & FormatNumber(Drive.AvailableSpace/1024,0) & "KB")
והשגיאה
סוג שגיאה:
שגיאת זמן ריצה של Microsoft VBScript (0x800A01A8)
דרוש אובייקט: "
/fso.asp, line 72
הקוד המלא:
<%@ Language="VBScript" CodePage="1255"%>
<html dir="rtl">
<%
Dim FSO ' הגדרת האוביקט הראשי
Dim Drive ' הגדרת האוביקט של שימוש דריברים שזה אות הכונן
Dim Drives ' הגדרת האוביקט של התקנים
Dim Folder ' הגדרת אוביקט לשימוש בתיקיות
Dim Files ' הגדרת אוביקט הקבצים
Dim File ' הגדרת אוביקט הקובץ
Dim SubFolders ' הגדרת תת התיקיות
Dim SubFolder ' הגדרת התת תיקיה
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Drive = FSO.GetDrive(FSO.GetDriveName("D:"))
Response.Write ("שטח פנוי: " & FormatNumber(Drive.AvailableSpace/1024,0) & "KB")
Response.Write Drive.DriveLetter
Response.Write Drive.DriveType
Response.Write Drive.FileSystem
Response.Write "שטח פנוי: " & FormatNumber(Drive.FreeSpace/1024,0) & "MB"
Response.Write Drive.IsReady
Response.Write Drive.Path
Response.Write Drive.RootFolder
Response.Write Drive.SerialNumber
Response.Write Drive.ShareName
Response.Write FormatNumber(Drive.TotalSize/1024,0) & "MB"
Response.Write Drive.VolumeName
%>
</html>
<%
Set Drive = Nothing
Set Drives = Nothing
Set Files = Nothing
Set SubFolders = Nothing
Set Folder = Nothing
Set FSO = Nothing
%>
השורה נראית לי תקינה
מה קורה אם אתה מסיר אותה? יש שגיאה על השורה אחריה?
נ.ב: מומלץ לשנות את הצגת השגיאה לאנגלית.
אכן כן…
מאוד מוזר. הקוד הזה עובד אצלי יופי.
תנסה לכתוב לו Response.write על מחרוזת קבועה לפני שאתה כותב את הנתונים של הכונן:
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Drive = FSO.GetDrive(FSO.GetDriveName("D:"))
Response.write "bla bla bla <br>"
Response.Write ("שטח פנוי: " & FormatNumber(Drive.AvailableSpace/1024,0) & "KB")
Response.Write Drive.DriveLetter
יכול להיות שהשגיאה היא על Response, אבל אני בספק. אם תקבל את השגיאה על השורה שהוספנו עכשיו, אז היא באמת על ה Response…
בהחלט מוזר מאוד.
הבעיה היא סדר שאני מציב את הקוד הנ"ל
Response.Write Drive.DriveLetter
Response.Write ("שטח פנוי: " & FormatNumber(Drive.AvailableSpace/1024,0) & "KB")
בראש הדף אני לא מקבל שגיאה אבל שאני מציב בסוף הדף אני אכן מקבל שגיאה
וזה באמת מוזר כי אני עברתי על הקוד ולא סגרתי את האוביקט לפנאי הזמן או משהוא
תודה בכל אופן, אני משרשר כאן עוד הודעה חדשה,
אני רוצה לבדוק משקל הקובץ ב MB במקום KB
ככה זה של KB
Response.Write "גודל קובץ"&FormatNumber(File.Size/1024,0)&"KB <br />"
איך אני צריך לרשום כדי למדוד על ידי MB..?
מקפיץ..
אוקי אני משרשר כאן שאלה חדשה
אני רוצה להציג את השם של קובץ (דף) שהגולש נמצא בוא כאת
דרך FSO
אבל הבעיה היא שאני צריך להגדיר את זה
Set File = FSO.GetFile("D:InetpubwwwrootDefault.asp")
וכמו שאתם רואים זה הנתיב המלא
זה כמובן בעיה כי אני לא רוצה לרשום את הנתיב המלא אלא רק
Default.asp
ואז זה לא עובד…
כיצד ניתן לתקן זאת?
תודה מראש..
תשובה
נסה כך:
Set File = FSO.GetFile(Server.MapPath("Default.asp"))
תשובה
תחלק ב-1024 ואת התוצאה תחלק שוב ב-1024.
אממ לא ממש פועל
לא הכי עובד
Response.Write "גודל קובץ"&FormatNumber(File.Size/1024,0)/1024&"MB <br />"
או ככה
Response.Write "גודל קובץ"&FormatNumber(File.Size/1024,0/1024)&"MB <br />"
כי אני רואה 00023455 MB
יש דרך אחרת?
תותח…
תודה רבה
לא עשית טוב
FormatNumber((File.Size/1024)/1024,0)
אמור לעבוד…
חזק אתה…;-))