質問

これは、私のファイルが共有ドキュメントライブラリの下にある「共有フォルダー」と呼ばれるフォルダーにあることを除いて、すべて良いことです。

    SPSite oSite = new SPSite ("http://<sitename>/");
    SPWeb oWeb = oSite.OpenWeb(); 
    SPList oList = oWeb.Lists["Shared Documents"];
    SPListItem oListItem = oList.Items[0]; //taking the first list item
    oListItem.File.CheckOut();
    oListItem["Name"] = "xyz";           
    oListItem.Update();
    oListItem.File.CheckIn("file name has been changed");

=== more ===を追加しました

SPFolder gFolder = currentWeb.Folders[doclibname].SubFolders["Shared Folder"];
SPFileCollection filesColl = gFolder.Files;
foreach (SPFile file in filesColl)
{ 
     if (file.Title.Equals("abcdefg"))
     {
           //file.Title = newFileName;
           file.Properties["Title"] = "xyz";
           file.Update();
     }                                  
}

Spfileは私にこのようにそれをさせません。

役に立ちましたか?

解決 2

最後にこれは機能します。いくつかの変数は、ここには示されていないプロジェクトで宣言されています。ドキュメントライブラリのように。

if (properties.BeforeUrl != properties.AfterUrl)
{
string[] onp = properties.BeforeUrl.Split('/');
string ofn= onp[onp.Length - 1]; // get the old file name
string ofnwoext = Path.GetFileNameWithoutExtension(ofn);
string[] nnp = properties.AfterUrl.Split('/');
string nfn = nnp[nnp.Length - 1]; //get the new file name

string furl = doculibrUrl + "/Shared Folder/" + ofnwoext + ".tiff";
SPFile file = web.GetFile(fURL);
if (file.Exists)
{
    file.Item["Name"] = nfn;
    file.Properties["Title"] = nfn;
    file.Item.Update();                                
}
return;
}

他のヒント

使用してみてください item.Name それよりも item["Name"].

例コードで私のために機能します このページで.

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top