אני כל הזמן נתקל בבעיה, גוגל אף פעם לא מבינים מה אני רוצה לעשות, אז חשבתי שאכתוב את זה.
אני עושה הרבה מקלט אירוע באגים בשבוע האחרון או שתיים. המיון מוגדר נגד ספריית מסמכים. הפריטים הבודדים ספריית מסמכים קשורים באופן הדוק תיקיות האב שלהם. כל כך, אני תמיד מקבל את התיקיה של הפריט עבור מניפולציות שונות. בעת איתור באגים, הייתי צריך לעדכן את המטה-נתונים של תיקיה עבור פריט ספציפי שהמזהה שלה. אני יודעת.
הנה יישום מסוף קצת (היכולת להפעיל שרת בחווה) . זה דורש שני ארגומנטים: המזהה של פריט וערך כדי להקצות שדה, "מצב אישור". זה קשה קודים הרבה דברים ויש לו אין בדיקת שגיאות.
הקוד נראה אתר מקודד קשה, מקבל ספריית מסמכים מקודד קשה, ואז מוצא את הפריט המסומן. ואז הוא מוצא תיקיית האב של פריט זה, הקצאת הערך מצב.
השיעור מפתח כאן בשבילי הוא SPItem לא לקבל גישה לתיקיה. אתה צריך להשתמש SPListItem.File.
אם למישהו אכפת להציע ביקורת או להציע דרך טובה יותר כדי לקבל את התיקיה של פריט, אנא השאירו תגובה.
<קוד>
שימוש מערכת; שימוש System.Collections.Generic; שימוש System.Text; שימוש Microsoft.SharePoint; שימוש System.Collections; מרחב שמות Conchango { /// <סיכום> /// </סיכום> מחלקה ManualFolderUpdate { סטטי void ראשי(מחרוזת[] ארגומנטים לזמינים) { מחרוזת msh = "ManualFolderUpdate (v 1.0): "; // msh = "הודעה עליונה" המסוף.WriteLine(msh + ". מתחילים. . אני שונה לאחרונה ב- 08/04/08."); מחרוזת כתובת url = http://localhost/xyzzy; שימוש (SPSite oSPSite = חדש SPSite(כתובת url)) { שימוש (SPWeb oSPWeb = oSPSite.OpenWeb()) { Splist.update() ספריית מסמכים = oSPWeb.Lists["מסמכים"]; המסוף.WriteLine(msh + "מה אתה עושה. יש ספריית המסמכים."); המסוף.WriteLine(msh + "הרוזן פריט lib של דוק: [" + docLib.ItemCount + "]."); int המיפוי של מזהי התיקיות = 0; מחרוזת NewStatus = "xyzzy"; המיפוי של מזהי התיקיות = מערכת.המר.ToInt32(ארגומנטים לזמינים[0].ToString()); המסוף.WriteLine("מחפשים תיקיה עבור פריט: [" + המיפוי של מזהי התיקיות + "]."); SPListItem li = docLib.GetItemById(המיפוי של מזהי התיקיות); SPFolder thisItemFolder = li.File.ParentFolder; המסוף.WriteLine(msh + "מה אתה עושה. יש תיקיית האב."); NewStatus = ארגומנטים[1].ToString(); המסוף.WriteLine("הגדרת מצב [" + NewStatus + "]."); המסוף.WriteLine("לחץ חזור לבצע את העדכון או CTRL-C כדי לבטל."); המסוף.ReadLine(); thisItemFolder.Item["מצב אישור"] = NewStatus; thisItemFolder.Item.Update(); המסוף.WriteLine(msh + "מסיים לעדכן את התיקיה. יציאה."); } // שימוש SPWeb } // שימוש SPSite המסוף.WriteLine(msh + "סיים."); } // ראשי } // מחלקה foldersync } // מרחב שמות
</קוד>
</קצה>