Create a Folder using JSOM in root level
Question
How can I create a folder in root level using JSOM
the snippets available in Microsoft site are for creating folders under existing folders, I want to create in root level
oWebsite = clientContext.get_web();
oList = oWebsite.get_lists().getByTitle("Shared Documents");
// I want to create a folder like Shared Documents, i.e. in that level
itemCreateInfo = new SP.ListItemCreationInformation();
itemCreateInfo.set_underlyingObjectType(SP.FileSystemObjectType.folder);
itemCreateInfo.set_leafName($(".input").val());
this.oListItem = oList.addItem(itemCreateInfo);
this.oListItem.set_item($(".input").val(), "My new folder!");
Solution
You can try the below code to create folder inside list/libary:
function createFolder() {
var clientContext = SP.ClientContext.get_current();
var item = null;
var oList = clientContext.get_web().get_lists().getByTitle('Documents');
clientContext.load(oList);
var itemCreateInfo = new SP.ListItemCreationInformation();
itemCreateInfo.set_underlyingObjectType(SP.FileSystemObjectType.folder);
itemCreateInfo.set_leafName('Test Folder');
item = oList.addItem(itemCreateInfo);
item.set_item("ContentTypeId", "0x0120");
item.set_item('Title', 'Test Folder');
item.update();
clientContext.load(item);
clientContext.executeQueryAsync(
function() {
console.log("folder created!");
} ,
function(sender,args) {
console.log("something went wrong... " + args.get_message());
}
);
}
Try below code to create a document library at the "same" level as Shared Documents
function createDocLib() {
var clientContext = SP.ClientContext.get_current();
var oWebsite = clientContext.get_web();
var listCreationInfo = new SP.ListCreationInformation();
listCreationInfo.set_title('Test Document');
listCreationInfo.set_templateType(SP.ListTemplateType.documentLibrary);
var oList = oWebsite.get_lists().add(listCreationInfo);
clientContext.load(oList);
clientContext.executeQueryAsync(onQuerySucceeded, onQueryFailed);
}
function onQuerySucceeded() {
var result = oList.get_title() + ' created.';
console.log(result);
}
function onQueryFailed(sender, args) {
console.log('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
OTHER TIPS
Please try below code.
oWebsite = clientContext.get_web();
oList = oWebsite.get_lists().getByTitle("Shared Documents");
var parentFolder = oList.get_rootFolder()
var clientContext= parentFolder.get_context();
var curFolder = parentFolder.get_folders().add('My new folder!');
clientContext.load(curFolder);
clientContext.executeQueryAsync(
function () {
},
function (sender, args) {
});
}
Hope it works for you!!!
Licensed under: CC-BY-SA with attribution
Not affiliated with sharepoint.stackexchange