嗨,我一直在玩与 Sharepoint 列表中的项目有关的文件。此项目是我对其进行更改然后转换为 PDF 的文档。我目前上传此 PDF 并用它替换原始文档。到目前为止,一切似乎都运行良好。但是,当我用新文件替换文件时,当它是文档文件时,我看不到该文件的旧版本。如果这是不可能的,我已经获得了在用新文件替换旧文件之前复制项目的灵活性。这样就有一个可用的原始文档文件和新版本。
我目前一直在玩 item.CopyTo() 试图复制该项目但没有成功。下面是我用来替换 teh 文件的代码(以及我正在处理的复制项目的代码):
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 Caribbeanexiste y que tiene permiso para editarla。
就我而言,权限不是问题,并且该目录显然存在,因为那是当前的项目目录...如果有任何其他方法可以解决这个问题,请随时发布,因为这可能不是最好的解决方案...提前致谢!
编辑
似乎该文件已作为文档进行版本控制,但扩展名仍为 PDF 有什么想法可以使版本控制保留原始文件的扩展名吗?