שלח תשובה

זירת השאלות

651
צפיות
35
תשובות

שאךה בקשר לFSO

,‏ 30 במאי, 2005

קראתי את המדריך המצויין של buildhome על FSO ובניתי משהו..
ועכשיו עשיתי עם הקוד הבא שיראה לי את התיקית אבא של התיקיה שאני נימצא בה,זאת השורת קוד:


Folder.ParentFolder


כמובן שליני זה יש כל מה שצריך להיות וכו…
הקוד פועל כמו שצריך אבל הבעיה היא שהוא מציג לי את כל הדרך זאת אומרת נגיד אני נימצא בתיקיה שם TEST והתיקית אבא שלה זה TESTA אז זה מציג לי ככה:


c:/site/TESTA

ואני רוצה שזה יתחיל מTESTA זה אומרת:


TESTA/


אך אני יכול לעשות את זה?

תגיות:

35 תשובות

  1. BuildHome הגיב:

    קודם כל
    תודה רבה. מקווה שיעזור לרבים

    נסה משהו כזה (קצת ארוך אבל פשוט):
    Response.Write Right(Folder.ParentFolder,Len(Folder.ParentFolder)-InStrRev(Folder.ParentFolder,"/"))&"/"
    אמור לעבוד.

  2. somebody הגיב:

    זה לא עוזר..
    חשבתי לעשות משהו עם ספליט אבל אני לא יודע איך…
    תיראו מה רציתי לעשות:


    site/test/test2/test3

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

  3. BuildHome הגיב:

    תגדיר 'לא עוזר'
    ניסיתי את זה (שמתי את המחרוזת ששמת כניסיון) וזה עובד מצוין.

  4. somebody הגיב:

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

    ושאמרתי לא עוזר התכוונתי שעדיין כמו מקודם זה מביא את תיקיה האב אבל גם בסוף מביא את הקונן ועוד כמה תיקיות לא רצויות…
    היום שאני אחזור מבית ספר אני יביא לך שתיראה את הקוד…

  5. BuildHome הגיב:

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

    שאתה ניגש לתקיה מסוימת מהתקיה הראשית אתה מפנה בכתובת למשל
    showFolders.asp?path=mainFolder/images

    עכשיו, כדי לעשות 'רמה אחת למעלה' אתה פשוט מוחק את כל הערך לפני ה-/ וזה בעצם ממש דומה למה שהבאתי לך (צריך להשתמש באותם הפונקציות הפשוטות).

    לפי דעתי אין צורך (בכלל) במאפיין ParentFolder.

  6. somebody הגיב:

    זה מה שאני רוצה לעשות..
    למחוק אבל אך אני מוחק את זה?
    כאילו אני רוצה שבלחיצה על כפתור זה יחזוא אחורה ולא לימחוק בשורת כתובת.

  7. BuildHome הגיב:

    למה לא למחוק?
    אתה יכול להשתמש ב-JS כדי לחזור אחורה (כמו בכפתור 'אחורה' בדפדפן)
    <span style="cursor:hand;" OnClick="history.back(-1);">רמה אחת למעלה</span>

  8. somebody הגיב:

    הבעיה בזה היא שנגיד ואני ירצה…
    מתי שהוא להפוך אותה למשהו באתר שלי אז נגיד והמשתמש יערוך עמוד אז החזרה אחורה ע"י הדפדפן תחזיר אותו לעמוד עריכת או לכל דבר אחר…
    הבנת?
    אין לי בעיה לימחוק אבל אני לא רוצה כאילו אני למחוק אלה איזה שהיא פקודה…
    חשבתי אולי אפשר לעשות משהו עם split אבל אני לא ממש יודע מה חח…

  9. BuildHome הגיב:

    למה split?
    עדיין לא הבנתי מה רע בהצעה הראשונה שהצעתי לך.
    אני השתמשתי בה, היא יעילה ונוחה מאוד (הדרך היחידה שהגיונית לביצוע הדבר).

  10. somebody הגיב:

    עשיתי כמו שאמרת ב JS וזהו..
    תודה על העזרה!   

    עכשיו יש לי עוד שאלה.
    כמה KB יש ב MB אחד?
    כי נכון יש את הפקודה שבודקת גודל של קובץ ב KB אז אני רוצה שהיא תבדוק ב MB אבל אני לא זוכר כמה MB יש ב KB ב ביטים הצלחתי…
    שמתי 8 במקום 1024 כי יש 8 ביטים בכל קילוביט אחד…
    אז כמה מגהביט יש בכל קילוביט?

  11. somebody הגיב:

    תראה מה עשיתי אבל זה לא פועל טוב…


    if FormatNumber(File.Size/8,0)=>"1024" then filesize=""&FormatNumber(File.Size/1024,0)&"KB"
    if FormatNumber(File.Size/8,0)=<"1024" then filesize=""&FormatNumber(File.Size/8,0)&"B"
    if FormatNumber(File.Size/1024,0)=>"1024" then filesize=""&FormatNumber(File.Size/1048576,0)&"MB"

    זה מציג לי רק MB או B או KB ….
    מה הבעיה בזה?

  12. BuildHome הגיב:

    תעשה משהו פשוט יותר
    והגיוני יותר. עדיף להציג ב-MB או ב-KB.
    הייתי ממליץ לעשות לגודל קבצים ב-KB ולגודל תקיות ב-MB.
    If FormatNumber((File.Size/1024)/1024,0)>1 Then
        filesize = FormatNumber((File.Size/1024)/1024,0)&"MB"
    Else
        filesize = FormatNumber(File.Size/1024,0)&"KB"
    End If

    אמור לעבוד.

  13. somebody הגיב:

    תודה רבה זה עובד!!
    עוד שאלה..
    נכון יש את הקוד של הוספת תיקיה/קובץ?
    האם אני יכול שהוא יפעל ללא לשים גם כונן?
    כאילו זה יזה לבד את הכונן שבו הוא נימצא וכל התיקיות אב שבתוכנה נימצאת התיקיה של הקובץ..
    כי נגיד וכאשר אני אקנה שטח לאחסן את האתר שלי מאיפה לי לדעת ת'קונן שבו נימצא האתר, כל תיקיות המשנה?…

  14. somebody הגיב:

    ויש עוד משהו…
    חחחחח היום אני מפציץ חחחחחח… שאני אדע את זה יותר טוב כבר אני לא אשאל כל כך הרבה שאלות….

    עכשיו זה שאלה ששאלתי פעם של חזרה אחורה בתיקיות..
    עכשיו עם JS אבל זה מחזיר אותי גם לעמודים של יצירת התיקיה…
    אולי אתם יודעים אך נענע או כל אתרי האחסון עושים?

  15. BuildHome הגיב:

    גם פשוט
    תעשה משהו כזה:
    FSO.CreateFolder Server.MapPath(Request.Form("newFolder"))

    FSO.CreateTextFile Server.MapPath(Request.Form("newFile"))

  16. BuildHome הגיב:

    בדיוק כמו שאני המלצתי לך
    הנתיב של הצגת תקיות וקבצים נמצא בשורת הכתובות.
    כדי לעשות רמה אחת למעלה מוחקים את הערך של עד ה-/ האחרון בצד ימין.

  17. somebody הגיב:

    הבנתי שלימחוק אבל מה כאילו למחוק…
    בשורת כתבות?
    מה כל גולד ימחוק בשורת כתובת שלו את התיקיות עש שיגיע לתיקיה הרצויוה?
    לא ניתן לעשות את זה בקוד??
    בגלל שבאתרי האחסון לדוגמא אני לא צריך למחוק משורת הכתובת יש לחצן שלוחצים עליו והוא מחזיר אותך תיקיה אחורה..
    לזה אני מתכוון.

  18. BuildHome הגיב:

    למה אני מתכוון?
    בעזרת הפונקציות שהצעתי לך בהתחלה (mid,instrrev,len) תוכל ליצור קישור של 'רמה אחת למעלה' שימחק את מה שצריך ויפנה באמת לתקיית האב.

  19. somebody הגיב:

    זה מוחק אבל…
    זה גפמראה לי את כל הדרך:


    d:/site/gumvgum/

    זה באמת מוחר את התיקיה שליפני אבל זה גם מוסיף משהו שאני לא צריך…
    זה מוסיף לי כונן + עוד שני תיקיות שאני לא צריך שזה יציג…
    זאת הבעיה.
    עכשיו יותר מובן?…

  20. BuildHome הגיב:

    =======> תשובה פה
    זה תלוי איך אתה בוחר להציג את התקיה.

    אני למשל עשיתי משהו דומה לזה:
    <a href="showFiles.asp?folder=forum">forum</a>

    למשל בתוך תקיית forum יש תת תקיה, אז זה יראה כך:
    <a href="showFiles.asp?folder=forum/images">images</a>|סקוד

    הצגת התקיות היא פשוטה ותהיה כך:
    Set Folder = FSO.GetFolder(Server.MapPath(Request.QueryString("folder")))

    לכן אין צורך בנתיב המלא כאשר אפשר להשתמש בנתיב 'מקוצר'.

  21. somebody הגיב:

    זה מה שגם אני עשיתי…
    הינה תיראה:


    <%
    Dim FSO
    'פתיחת אוביקט FSO
    Set FSO = Server.CreateObject("Scripting.FileSystemObject")
    'לקיחת תיקיה לפי DIR
    Set Folder = FSO.GetFolder(Server.MapPath("../"&dir&""))%>

    וליפני זה יש את המשתנה של ה dir שמוגדר משורת הכתובת ע"י ריקיוז.
    ככה עשיתי שניכנסים לתיקיות זה:


    <a href="?dir="&SubFolder.Name&" class="overTOfile">"&SubFolder.Name&"</a>

    אבל שאני חוזר אחורה עם הקוד שהבאת לי זה מראה לי את כל הדרך כולל כוננים הינה תמונת מסך(תמונה מצורפת)

  22. BuildHome הגיב:

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

  23. somebody הגיב:

    עוד שאלה..


    שאני מוסיך קובץ ואני משאיר אותו ריק זה כותב לי את השגיאה הבאה:


    Error Type:
    Microsoft VBScript runtime (0x800A003E)
    Input past end of file
    /edit_site/editfile_post.asp, line 24

    זאת שורה 24:


    Set File = FSO.OpenTextFile(server.mapPath(Path),1,False)
    editdata= File.ReadAll
    File.Close

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


    File.ReadAll

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

    השאלה השניה שלי היא נגיד והנתיב שהבאתי לא טוב או שהקובץ לא נימצא אך אני יכול לעשות כמו בשאילתת SQL eof or bof?

  24. BuildHome הגיב:

    הכל כתוב לך במדריך
    רק צריך למצוא.
    אתה צריך לבדוק אם יש מידע בקובץ ואז להציב במשתנה את המידע שבו.
    If FSO.FileExists(server.mapPath(Path)) Then
        Set File = FSO.OpenTextFile(server.mapPath(Path),1,False)
        If not File.AtEndOfStream Then
            editdata= File.ReadAll
        Else
            editdata= "הקובץ ריק"
        End If
        File.Close
    End If

    אמור לעבוד

  25. somebody הגיב:

    כן תודה…
    נזכרתי שעשיתי את זה כבר..
    שבניתי בדקתי אם כבר יש קובץ או תיקיה שם הזה, זה אותו רעיון לפי מה שאני עכשיו רואה.

    תודה לך!!!!
    אתה עזרתה לי הרבההההההההההההההההה, אפשר להגיד בהכל (אני מדבר גם על המדריך שלך.    )

  26. somebody הגיב:

    הצלחתי לעשות עם split !!
    עשיתי בסוף עם split את זה וזה פועל כמו שצריך….
    תודה בכל מיקרה על העזרה הרבבהההההה שנתת לי!!!   

  27. somebody הגיב:

    איזה מדריך? FSO??
    אםם כן אז הוא פה באתר..
    במדור ASP.
    buildhome כתב אותו..

  28. iliakap2002 הגיב:

    אהההה.
    הנה הוא…
    BH (דביר:)) אני מוריד בפנייך את הכובע… מדריך ממש מפורט… ממש מעולה

  29. somebody הגיב:

    כן צדריך מצויין ראוים שהוא השקיע! (
    וגם הוא יודע טוב++++++= את זה.

  30. BuildHome הגיב:

    תודה רבה
    מקווה שיהיה עזר לרבים!

    קרא לי בילד

שלח תשובה