最近有一项目需要通过JavaScript Object Model获取某一指定列表下所有文件夹名称,下面是具体的实现方法。
<script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(getFolders, "sp.js");
function getFolders() {
var context = new SP.ClientContext.get_current();
var list = context.get_web().get_lists().getByTitle('Your Document Library Name');
var query = SP.CamlQuery.createAllFoldersQuery();
this.allItems = list.getItems(query);
context.load(allItems);
context.executeQueryAsync(Function.createDelegate(this, this.success), Function.createDelegate(this, this.failed));
}
function success() {
var folderNames = "";
var listEnumerator = allItems.getEnumerator();
while (listEnumerator.moveNext()) {
var currentItem = listEnumerator.get_current();
// 1: folder; 0: file;
if(currentItem.get_fileSystemObjectType() == '1') {
folderNames += currentItem.get_fieldValues('Title').FileLeafRef+ '\n';
}
}
alert(folderNames);
}
function failed(sender, args) {
alert("failed. Message:" + args.get_message());
}
</script>