0

我正在尝试使用 SharePoint 设计器创建一个按钮,onclick 将允许用户浏览文件夹,然后将内容 ( path:\filenames) 放入共享点列表列。我已经使用了下面的代码,它可以工作,除了我需要一个不使用 activeX 的解决方案,因为我的系统设置为不允许未签名的 activex。我对任何适用于不使用和 activex 控件的共享点列表的解决方案持开放态度。我的按钮onclick="getFolderFiles()"

function getFolderFilesSub(fsoFolder, astrFolderFiles) {
    var eFiles = new Enumerator(fsoFolder.Files);
    eFiles.moveFirst();
    While (eFiles.atEnd() ==false) {
       astrFolderFiles.push(eFiles.item().Path);
       eFiles.move.next();
    }

    var eSubFolders = new Enumerator(fsoFolder.SubFolders);
    eSubFolders.moveFirst();
    while (eSubFolders.atEnd() == false({
        getFolderFilesSub(eSubFolders.item(), astrFolderFiles);
         eSubFolders.moveNext();
    }
}

function getFolderFiles() {
    var objShell = new ActiveXObject('Shell.Application');
    var objShellFolder = objShell.BrowseForFolder(0, 'Choose a folder', 0, 0);

    if (objeShellFolder != null) {

        var fso = new ActiveXObject('Scripting.FileSystemObject');
        var fsoFolder = fso.GetFolder(objShellFolder.Items().Item().Path);

        astrFolderFiles = new Array();

        getFolderFilesSub(fsoFolder, astrFolderFiles);

        if (astrFolderFiles.length != 0) {
            var strFolderFiles = astrFolderFiles[0];
            for (var i=1; i <= astrFolderFiles.length-1; i++) {
                strFolderFiles = (strFolderFiles + '\n\ + astrFolderFiles[i];
            }
            document.getElementById(ct100$PlaceHolderMain$g_85cf34cd_8dc3_47ca_85d9_
                                    a6f47297db56$ffFileNames$ct100#ct100$text
                                    field").value = strFolderFiles;
        }
    }
4

0 回答 0