Facile et rapide: Obtenir SPFolder de SPItemList

Je continue en cours d'exécution sur ce problème et Google semble jamais comprendre ce que je veux faire, donc je me suis dit que j'écrirais ce.

J'ai fait beaucoup de récepteur d'événements de débogage dans la dernière semaine ou deux. L'ER est défini par rapport à une bibliothèque de documents. Les éléments individuels dans la bibliothèque de documents sont étroitement liés à leurs dossiers parents. Si, Je reçois toujours le dossier de l'élément pour diverses manipulations. Lors du débogage, J'avais besoin de mettre à jour les métadonnées d'un dossier pour un élément spécifique dont je connais l'ID.

Voici une petite application console (conçu pour s'exécuter sur le serveur de la batterie) qui prend deux arguments: l'ID d'un élément et la valeur à assigner à un champ, « Statut d'approbation ». Il est difficile codes beaucoup de choses et n'a aucune vérification des erreurs.

Le code ressemble un site dur codé, Obtient une bibliothèque de documents codés en dur et recherche ensuite l'élément indiqué. Puis, il trouve le dossier parent de l'élément et assigne la valeur d'État.

La principale leçon ici pour moi, c'est que SPItem ne reçoit pas accès au dossier. Vous devez utiliser SPListItem.File.

Si quelqu'un se soucie d'offrir une critique ou de suggérer une meilleure façon d'obtenir le dossier d'un élément, Veuillez laisser un commentaire.

<Code>
à l'aide de Système;
à l'aide de System.Collections.Generic;
à l'aide de System.Text;
à l'aide de Microsoft.SharePoint;
à l'aide de System.Collections;

espace de noms Conchango
{
    /// <Résumé>
 /// </Résumé>
 classe ManualFolderUpdate
    {
        statique VOID Principal(chaîne[] args)
        {
            chaîne MSH = « ManualFolderUpdate (v1.0): "; // MSH = "en-tête de Message"

 Console.WriteLine(MSH + « Démarrage.  J'ai modifié le 04/08/08.");

            chaîne URL = http://localhost/xyzzy;

            à l'aide de (SPSite oSPSite = Nouveau SPSite(URL))
            {

                à l'aide de (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList docLib = oSPWeb.Lists[« Documents"];

                    Console.WriteLine(MSH + « A la bibliothèque de documents.");

                    Console.WriteLine(MSH + « Doc lib point comte: [" + docLib.ItemCount + "].");

                    int FolderID = 0;
                    chaîne NewStatus = "xyzzy";

                    FolderID = système.Convert.ToInt32(args[0].ToString());
                    Console.WriteLine(« Recherche de dossier pour élément: [" + FolderID + "].");

                    SPListItem Li = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Console.WriteLine(MSH + "Got le dossier parent.");

                    NewStatus = args[1].ToString();
                    Console.WriteLine(« Définir l'état de [" + NewStatus + "].");

                    Console.WriteLine(« Appuyez sur retour pour valider la mise à jour ou CTRL-C pour abandonner.");

                    Console.ReadLine();

                    thisItemFolder.Item[« Statut d'approbation"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Console.WriteLine(MSH + « Fini la mise à jour le dossier.  Sortie.");

                } // à l'aide de SPWeb

            } // en utilisant SPSite

 Console.WriteLine(MSH + « Fini.");

        } // Principal

    } // classe foldersync
} // espace de noms
</Code>

</fin>

S'abonner à mon blog.

Laisser une réponse

Votre adresse email ne sera pas publiée. les champs requis sont indiqués *