SPException:它可能引用不存在的文件或文件夹,或引用当前Web中不存在的有效文件或文件夹

时间:2015-02-10 06:11:01

标签: c# sharepoint

我在尝试将文档上传到文档库时遇到上述异常。这是我的代码:

spFile = spWeb.Files.Add(
                    docUrl,
                    uploadStream,
                    true, // overwrite or add a new version
                    uploadMessage.Metadata.CheckInComment ?? "", //check-in comment to use when creating the file in the collection. (can't be NULL)
                    false); 

从浏览器手动上传文件时,但使用SPWeb.Files从代码中添加文件库中的文件时,不会发生此问题。添加上述异常。请注意,Web应用程序的Content DB未满或未设置为只读。

1 个答案:

答案 0 :(得分:0)

我会尝试用powershell做你正在做的事情,输出对象会让你更深入地了解你的问题。

我会稍微改变一下,所以我可以确定该文件正好位于我希望它去的地方。

var sp = new SPSite("http://localhost"); 
var site = sp.OpenWeb(); 
var folder = site.GetFolder("Documents"); 
var files = folder.Files; 

// Opening a filestream 
var fStream = File.OpenRead("C:MyDocument.docx"); 
var contents = new byte[fStream.Length]; 
fStream.Read(contents, 0, (int)fStream.Length); 
fStream.Close(); 

// Adding any metadata needed 
var documentMetadata = new Hashtable {{"Comments", "Hello World"}}; 

// Adding the file to the SPFileCollection 
var currentFile = 
    files.Add("Documents/MyDocument.docx", contents, documentMetadata, true); 

site.Dispose(); 
sp.Dispose(); 

代码不是由我编写的,但你可以在链接

找到它

请查看

http://zimmergren.net/technical/how-to-upload-a-filedocument-using-the-sharepoint-object-model

干杯 Truez