こんにちは、Sharepoint リスト内のアイテムに関連するファイルで遊んでいます。このアイテムは、変更を加えてから PDF に変換するドキュメントです。現在、この PDF をアップロードして、元のドキュメントを置き換えています。そこまではすべて正常に機能しているようです。ただし、ファイルを新しいファイルに置き換えると、このファイルがドキュメント ファイルであった場合、このファイルの古いバージョンは表示されません。これが不可能な場合は、古いファイルを新しいファイルに置き換える前に、アイテムを複製する柔軟性が与えられています. このようにして、元のドキュメント ファイルと新しいバージョンが利用可能になります。
私は現在、アイテムを複製しようとして item.CopyTo() で遊んでいますが、失敗しました。以下は、ファイルを置き換えるために使用しているコードです(およびアイテムを複製するために取り組んでいるコード):
string newFileName = Path.GetFileNameWithoutExtension(file.Name) + ".old.docx";
string url = item.Web.Url + "/" + Path.GetDirectoryName(item.Url) + "\\" + newFileName;
item.CopyTo(url); //This is where my code crashes...
using (BinaryReader binReader = new BinaryReader(File.Open(tempSavePath, FileMode.Open)))
{
byte[] fBin;
string fileName = Path.GetFileNameWithoutExtension(file.Name) + ".pdf";
file.CheckOut();
fBin = binReader.ReadBytes((int)binReader.BaseStream.Length);
item["Title"] = fileName;
file.SaveBinary(fBin);
file.MoveTo(Path.GetDirectoryName(item.Url) + "\\" + fileName, true);
file.Item["Nombre"] = fileName;
file.Update();
file.CheckIn("");
}
私が得るエラーは次のとおりです。指定された宛先に要素を作成できません。ディレクトリが存在し、必要な権限があることを確認してください。(実際のエラーはスペイン語なので翻訳しましたが、英語で表示されている正確なメッセージではない可能性があります)
実際のメッセージ(スペイン語) : No se puede crear un elemento en el destino solicitado. Compruebe que la carpeta existe y que tiene permiso para editarla.
私が懸念している限り、アクセス許可は問題ではなく、それが現在のアイテムディレクトリであるため、ディレクトリは明らかに存在します...これについて他に方法がある場合は、これが最善の解決策ではない可能性があるため、お気軽に投稿してください...前もって感謝します!
編集
ファイルはドキュメントとしてバージョン管理されているようですが、拡張子は PDF のままです バージョン管理で元のファイルの拡張子を保持する方法はありますか?