SharePoint:ライブラリフォルダーのタイトル、名前、表示名の違い
-
19-09-2019 - |
質問
これが他の場所で尋ねられた場合は申し訳ありません。私は見ましたが、決定的な答えが見つかりません。
ドキュメントライブラリにフォルダーを作成する必要があるSharePoint 2010のアプリを書いています。ジョブを出力する場所として、アプリが処理する各「ジョブ」に1つ。しかし、私はフォルダー名の衝突に問題があります。各「ジョブ」は、別のSharePointリストのXMLファイルとしてエンコードされます。たとえば、「from docxからpdf.xml」と呼ばれるxmlファイルが含まれている場合があります。これまでのところ、ジョブファイル名を差し引いて、出力リストにサブフォルダーを作成するアプリが拡張機能を差し引いています。したがって、この場合、「DocxからDocxからPDFへ」と呼ばれるフォルダー。しかし、しばらくして、アプリはまったく同じジョブを再処理する必要があるかもしれません。ブラウザでユーザーにまったく同じ名前が表示されて、最初のリストと同じリストに別のサブフォルダーを持つことができるようになりたいです...
SharePointリストでこれを行うことはできますか?通常のSplistItemには、名前、表示名、およびタイトルプロパティがあるようです。明らかに、これらの1つはユニークでなければなりません。そのため、SharePointはそのアイテムを独自に識別できるようにします。しかし、それはどちらですか?また、リスト内のSpfolderアイテムにも同じことが当てはまりますか?ここでは、重複したフォルダーの表示名のようなものが欲しいと思うが、一意の内部名が欲しいと思う。これを行う方法について何かアイデアはありますか?これまでのところ、私のくだらない方法は次のようになります:
private SPFolder CreateSubFolder(SPList list, string visibleFolderName)
{
// create a new folder under the root folder
SPListItem newFolder = list.AddItem("", SPFileSystemObjectType.Folder, visibleFolderName);
newFolder.Update();
return newFolder.Folder;
}
これは明らかに機能しません。同じ可視名を持つために変更する方法に関するアイデアはありますが、内部名を差し引く(おそらくガイドを使用している...)??:D事前に感謝します。
解決
通常のファイルシステムと同様に、同じサブフォルダーの下のフォルダーは一意でなければなりません。したがって、の最後のパラメーター Add()
メソッドは、フォルダー名を示すため、一意でなければなりません。
このコードを使用して、フォルダーを作成した後、重複したタイトルを安全に添えることができます。
SPListItem newFolder = list.Items.Add("", SPFileSystemObjectType.Folder, uniqueFolderName);
newFolder["Title"] = "New Folder"; // Can be duplicated
newFolder.Update();
これで、同じタイトルを持つフォルダーがありますが、名前は異なります。それでも、Windows ExplorerまたはSharePointのデフォルトリストビューからこれらのフォルダーを閲覧しようとすると、タイトル(必要な)ではなく、フォルダー名(一意)が表示されます。したがって、カスタムビューを作成し、フォルダー名の代わりにタイトルフィールドを表示する必要があります。