如何使用客户端创建文件夹和子文件夹 object model-Javascript
How to create folder and subfolder using client object model-Javascript
我有一个自定义列表表单,我们需要在文档库中创建一个文件夹,文件夹名称等于列表项 title.and 然后应该立即在新创建的文件夹中创建 3 个文件夹。
我可以在捕获列表项标题后创建顶级文件夹,但不知道如何在这个新创建的文件夹中创建子文件夹。请输入任何信息?
下面显示的代码可以很好地创建顶级文件夹。需要知道,如何添加三个子文件夹。
function retrieveWebSite() {
var clientContext;
var oWebsite;
var oList;
var itemCreateInfo;
clientContext = new SP.ClientContext.get_current();
oWebsite = clientContext.get_web();
oList = oWebsite.get_lists().getByTitle("Docs");
itemCreateInfo = new SP.ListItemCreationInformation();
itemCreateInfo.set_underlyingObjectType(SP.FileSystemObjectType.folder);
itemCreateInfo.set_leafName("Top Folder");
this.oListItem = oList.addItem(itemCreateInfo);
this.oListItem.update();
clientContext.load(this.oListItem);
clientContext.executeQueryAsync(
Function.createDelegate(this, successHandler),
Function.createDelegate(this, errorHandler)
);
function successHandler() {
alert('success');
}
function errorHandler() {
alert('fail');
}
}
以下示例演示了如何使用 SharePoint JSOM 创建文件夹(包括嵌套文件夹):
var createFolder = function(listTitle, folderUrl,success,error)
{
var ctx = SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(listTitle);
var createFolderInternal = function(parentFolder,folderUrl,success,error)
{
var ctx = parentFolder.get_context();
var folderNames = folderUrl.split('/');
var folderName = folderNames[0];
var curFolder = parentFolder.get_folders().add(folderName);
ctx.load(curFolder);
ctx.executeQueryAsync(
function () {
if (folderNames.length > 1)
{
var subFolderUrl = folderNames.slice(1,folderNames.length).join('/');
createFolderInternal(curFolder, subFolderUrl,success,error);
}
success(curFolder);
},
error);
};
createFolderInternal(list.get_rootFolder(), folderUrl,success,error);
};
用法
假设必须在文档库下创建以下文件夹层次结构:
Archive
|
2014
|
07
然后:
createFolder('Documents','Archive/2014/07',
function(folder){
console.log(String.format("Folder '{0}' has been created",folder.get_name()));
},
function(sender,args){
console.log(args.get_message());
});
我有一个自定义列表表单,我们需要在文档库中创建一个文件夹,文件夹名称等于列表项 title.and 然后应该立即在新创建的文件夹中创建 3 个文件夹。 我可以在捕获列表项标题后创建顶级文件夹,但不知道如何在这个新创建的文件夹中创建子文件夹。请输入任何信息?
下面显示的代码可以很好地创建顶级文件夹。需要知道,如何添加三个子文件夹。
function retrieveWebSite() {
var clientContext;
var oWebsite;
var oList;
var itemCreateInfo;
clientContext = new SP.ClientContext.get_current();
oWebsite = clientContext.get_web();
oList = oWebsite.get_lists().getByTitle("Docs");
itemCreateInfo = new SP.ListItemCreationInformation();
itemCreateInfo.set_underlyingObjectType(SP.FileSystemObjectType.folder);
itemCreateInfo.set_leafName("Top Folder");
this.oListItem = oList.addItem(itemCreateInfo);
this.oListItem.update();
clientContext.load(this.oListItem);
clientContext.executeQueryAsync(
Function.createDelegate(this, successHandler),
Function.createDelegate(this, errorHandler)
);
function successHandler() {
alert('success');
}
function errorHandler() {
alert('fail');
}
}
以下示例演示了如何使用 SharePoint JSOM 创建文件夹(包括嵌套文件夹):
var createFolder = function(listTitle, folderUrl,success,error)
{
var ctx = SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(listTitle);
var createFolderInternal = function(parentFolder,folderUrl,success,error)
{
var ctx = parentFolder.get_context();
var folderNames = folderUrl.split('/');
var folderName = folderNames[0];
var curFolder = parentFolder.get_folders().add(folderName);
ctx.load(curFolder);
ctx.executeQueryAsync(
function () {
if (folderNames.length > 1)
{
var subFolderUrl = folderNames.slice(1,folderNames.length).join('/');
createFolderInternal(curFolder, subFolderUrl,success,error);
}
success(curFolder);
},
error);
};
createFolderInternal(list.get_rootFolder(), folderUrl,success,error);
};
用法
假设必须在文档库下创建以下文件夹层次结构:
Archive
|
2014
|
07
然后:
createFolder('Documents','Archive/2014/07',
function(folder){
console.log(String.format("Folder '{0}' has been created",folder.get_name()));
},
function(sender,args){
console.log(args.get_message());
});