three.js文件目录资源信息的获取

loaderutils.js

var LoaderUtils = {

    createFilesMap: function(files) {

        var map = {};

        for (var i = 0; i < files.length; i++) {

            var file = files[i];
            map[file.name] = file;

        }

        return map;

    },

    getFilesFromItemList: function(items, onDone) {

        // TOFIX: setURLModifier() breaks when the file being loaded is not in root

        var itemsCount = 0;
        var itemsTotal = 0;

        var files = [];
        var filesMap = {};

        function onEntryHandled() {

            itemsCount++;

            if (itemsCount === itemsTotal) {

                onDone(files, filesMap);

            }

        }

        function handleEntry(entry) {

            if (entry.isDirectory) {
                console.log(entry + "mulu");
                var reader = entry.createReader();
                reader.readEntries(function(entries) {

                    for (var i = 0; i < entries.length; i++) {

                        handleEntry(entries[i]);

                    }

                    onEntryHandled();

                });

            } else if (entry.isFile) {
                entry.file(function(file) {

                    files.push(file);
                    console.log(entry.fullPath);
                    console.log(entry.fullPath.substr(1));
                    filesMap[entry.fullPath.substr(1)] = file;
                    onEntryHandled();

                });

            }

            itemsTotal++;

        }

        for (var i = 0; i < items.length; i++) {

            var item = items[i];

            if (item.kind === 'file') {

                handleEntry(item.webkitGetAsEntry());

            }

        }

    }

};

export { LoaderUtils };

index.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
//发布的时候,script标签加上type="module" ,这里不加主要是 vscode加上后排版成一行,不方便查看
<script>
    import {
        LoaderUtils
    } from './LoaderUtils.js';
    document.addEventListener('dragover', function(event) {
        event.preventDefault();
        event.dataTransfer.dropEffect = 'copy';
    }, false);
    document.addEventListener('drop', function(event) {
        event.preventDefault();
        LoaderUtils.getFilesFromItemList(event.dataTransfer.items, function(files, filesMap) {
            console.log(files, filesMap);
        });
    });
</script>

<body>
    吾问无为谓无无无
</body>

</html>

下面准备一个目录

 




将新建文件夹(8)这个目录拖放到页面上,可以看到打印结果:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值