2016-05-03 16 views
1

新しいファイルをサイトに追加する方法があります。私はサイトからファイルを削除できるメソッドを実装しようとしています。現在、このメソッドはファイルを古いものから最新のものへと削除しています。 ifチェックを行うには、NameまたはDisplayNameにアクセスしたいところです。私はlistitem.DisplayNameにアクセスしようとすると私はのエラーエンと会っています:。サイト共有ポイント内のファイルの名前にアクセスできない

「プロパティまたはフィールドには、 『表示名』これは要求されていないか、要求が実行されていない初期化されていないことをする必要があります。明示的に要求されました。

もし私がlistitem.DisplayNameにアクセスできるようにする方法を理解するのを助けてくれたら、私は大いに感謝します!


DeleteAFile()

public static void DeleteAFile(string sFileName, string sFldrLoc) 
    { 

     ClientContext clientContext = new ClientContext(siteURL); 

     List spList = clientContext.Web.Lists.GetByTitle(sFldrLoc); 


     CamlQuery query = new CamlQuery(); 

     ListItemCollection listItems = spList.GetItems(query); 
     clientContext.Load(listItems); 
     clientContext.ExecuteQuery(); 



     foreach (ListItem listitem in listItems) 
     { 
      Console.WriteLine(listitem.DisplayName); // Line that is throwing error 

      // listitem.DeleteObject(); 
      clientContext.ExecuteQuery(); 
     } 

    } 

答えて

1

あなたは、各リスト項目のために取得するプロパティを示すために、clientContext.Loadのあなたの呼び出しを更新することができます。

clientContext.Load(listItems, 
    items => items.IncludeWithDefaultProperties(
    item => item.DisplayName)); 

How to retrieve list itemsを参照してください。

+0

私はあなたのコードスニペットている使用方法を知らないと思います。私はそれをプラグインしようとしたが、私はエラーを生成しています。私は変更を反映するためにメソッドを更新しました。 – jdave

+0

@jdaveどのようなエラーが表示されますか? – Thriggle

+0

私のメソッドは更新されていないので、私はエラーが発生していました。私はコードを更新します、あなたの助けてくれてありがとう! – jdave

2

を解決し、私はこれを解決する助けリンク用Thriggleに感謝します。以下の更新されたコード:

DeleteAFile()

/// <summary> 
    /// Will list out all the items within a Site, conduct a search and delete the item when found. 
    /// </summary> 
    /// <param name="sFileName"></param> 
    /// <param name="sFldrLoc"></param> 
    public static void DeleteAFile(string sFileName, string sFldrLoc) 
    { 

     ClientContext clientContext = new ClientContext(siteURL); 

     Web web = clientContext.Web; 
     ListCollection collList = web.Lists; 

     List oList = collList.GetByTitle(sFldrLoc); 

     CamlQuery query = new CamlQuery(); 

     query.ViewXml = "<View><Query><Where><Leq>" + 
      "<FieldRef Name='ID'/><Value Type='Number'>100</Value>" + 
      "</Leq></Where></Query><RowLimit>50</RowLimit></View>"; 

     ListItemCollection collListItem = oList.GetItems(query); 

     clientContext.Load(collListItem, 
      items => items.IncludeWithDefaultProperties(
       item => item.DisplayName)); 
     clientContext.ExecuteQuery(); 


     foreach (ListItem listitem in collListItem) 
     { 
      if (listitem.DisplayName.Equals(sFileName)) 
      { 
       listitem.DeleteObject(); 
       clientContext.ExecuteQuery(); 

       Console.WriteLine("{0}, has been deleted sucessfully!", listitem.DisplayName); 
      } 

     } 
    } 
関連する問題