2010-09-03 39 views
2

我想知道是否可以通過編程方式更改創建後的SPFolder的名稱?以編程方式更改SPFolder的名稱

例如

foreach (SPFolder folder in list.RootFolder.SubFolders) 
{ 
    if (folder.Name.Equals("blah")) 
    { 
     // set the name of the folder to something else 
     folder.Name = "blah 2.0"; 
    } 
} 

到目前爲止,谷歌搜索建議MoveTo是這樣做的唯一方法。文件夾內有很多項目,所以我不願意移動它,除非完全沒有其他方法。

謝謝。

+0

移動文件總是有些重新命名它們的標準方式。 – zneak 2010-09-03 01:15:14

回答

1

我結束了使用通過MoveTo因爲有這樣做的任何其他方式。

0

當你有一個SPFolder對象,你可以做這樣的:

folder.item["Title"] = "blah 2.0"; 
folder.item.SystemUpdate();' 
+0

[「Title」]與[「Name」]或[「BaseName」]有什麼不同? SystemUpdate()與Update()有什麼不同? – 2010-09-10 16:33:38

+0

'Title'是SharePoint中最受歡迎的字段,因爲每種內容類型都有它。我相信,BaseName和Name是特定於文件夾或文件的字段。 – naivists 2010-09-11 07:15:26

+0

SystemUpdate與常規更新不同,因爲它不會更改「上次修改」和「修改者」值。因此,如果變更沒有顯着的業務價值,這是將其從代碼中更改的最佳方式。 – naivists 2010-09-11 07:16:31

0

在文檔庫中,項目(文件夾)的字段名稱具有StaticName = FileLeafRef。所以真正對我有用的是

folder.Item[SPBuiltInFieldId.FileLeafRef] = "The new name"; 
folder.Item.Update(); 
相關問題