Γρήγορη και εύκολη: Να SPFolder της SPItemList

Συνεχίσει να τρέχει σε αυτό το πρόβλημα και η Google ποτέ δεν φαίνεται να καταλάβει τι θέλω να κάνω, έτσι σκέφτηκα θα ήθελα να γράψω αυτό.

Έχω κάνει πολλή δέκτη συμβάντων εντοπισμού σφαλμάτων σε την τελευταία εβδομάδα ή δύο. Το ER καθορίζεται ενάντια σε μια βιβλιοθήκη εγγράφων. Τα επιμέρους στοιχεία στη βιβλιοθήκη εγγράφων είναι άρρηκτα δεμένο με τους γονικούς φακέλους. Έτσι, Παίρνω πάντα το φάκελο του στοιχείου για διάφορους χειρισμούς. Κατά τον εντοπισμό σφαλμάτων, Έπρεπε να ενημερώσετε τα μετα-δεδομένα ενός φακέλου για ένα συγκεκριμένο στοιχείο με το αναγνωριστικό ξέρω.

Εδώ είναι μια μικρή εφαρμογή κονσόλας (σχεδιασμένο να λειτουργεί σε διακομιστή στη συστοιχία) που παίρνει δύο ορίσματα: το ID του στοιχείου και μια τιμή για να αντιστοιχίσετε ένα πεδίο, "Κατάσταση έγκρισης". Αυτό είναι δύσκολο κωδικούς πολλά πράγματα και να έχει κανένα έλεγχο σφαλμάτων.

Ο κώδικας που αναζητά μια μόνιμη τοποθεσία, παίρνει μια βιβλιοθήκη εγγράφων σκληρά κωδικοποιούνται και στη συνέχεια βρίσκει το στοιχείο που αναφέρεται. Στη συνέχεια, βρίσκει τον γονικό φάκελο αυτού του στοιχείου και εκχωρεί την τιμή κατάστασης.

Το βασικό δίδαγμα εδώ για μένα είναι ότι SPItem δεν παίρνει την πρόσβαση σας στο φάκελο. Θα πρέπει να χρησιμοποιήσετε SPListItem.File.

Αν κάποιος ενδιαφέρεται να προσφέρουν μια κριτική ή να προτείνουν έναν καλύτερο τρόπο για να πάρει το φάκελο ενός στοιχείου, Παρακαλώ αφήστε ένα σχόλιο.

<κώδικα>
χρήση Σύστημα;
χρήση System.Collections.Generic;
χρήση System.Text;
χρήση Microsoft.SharePoint;
χρήση System.Collections;

χώρος ονομάτων Conchango
{
    /// <Περίληψη>
 /// </Περίληψη>
 Κατηγορία ManualFolderUpdate
    {
        στατική άκυρη Κύρια(συμβολοσειρά[] args)
        {
            συμβολοσειρά MSH = "ManualFolderUpdate (v1.0): "; // MSH = "κεφαλίδα μηνύματος"

 Κονσόλα.WriteLine(MSH + "Εκκίνηση.  Τροποποιήθηκε τελευταία στις 08/04/08.");

            συμβολοσειρά URL = http://localhost/xyzzy;

            χρήση (SPSite oSPSite = νέα SPSite(διεύθυνση URL))
            {

                χρήση (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList docLib = oSPWeb.Lists["Έγγραφα"];

                    Κονσόλα.WriteLine(MSH + «Πήρε τη βιβλιοθήκη εγγράφων.");

                    Κονσόλα.WriteLine(MSH + «Doc lib πλήθος στοιχείων: [" + docLib.ItemCount + "].");

                    int FolderID = 0;
                    συμβολοσειρά NewStatus = "xyzzy";

                    FolderID = σύστημα.Μετατροπή.ToInt32(args[0].ToString());
                    Κονσόλα.WriteLine("Αναζήτηση φακέλου για το στοιχείο: [" + FolderID + "].");

                    SPListItem Λι = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Κονσόλα.WriteLine(MSH + «Πήρε το γονικό φάκελο.");

                    NewStatus = args[1].ToString();
                    Κονσόλα.WriteLine("Ρύθμιση κατάσταση να [" + NewStatus + "].");

                    Κονσόλα.WriteLine("Επιστροφή για να διαπράξουν την ενημερωμένη έκδοση ή CTRL-C για να ματαιώσετε τύπου.");

                    Κονσόλα.ReadLine();

                    thisItemFolder.Item["Κατάσταση έγκρισης"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Κονσόλα.WriteLine(MSH + "Τελικά την ενημέρωση του φακέλου.  Την έξοδο.");

                } // χρησιμοποιώντας SPWeb

            } // χρησιμοποιώντας SPSite

 Κονσόλα.WriteLine(MSH + "Τελείωσε.");

        } // Κύρια

    } // Κατηγορία foldersync
} // χώρος ονομάτων
</κώδικα>

</Τέλος>

Εγγραφείτε στο blog μου.

Αφήνω μια απάντηση

Η διεύθυνση email σας δεν θα δημοσιευθεί. τα απαιτούμενα πεδία είναι επισημασμένα *