前端-海鸟 2023-07-21 11:44 采纳率: 50%
浏览 32
已结题

electron如何选择空文件夹

electron的dialog选择文件夹,如何实现选择的文件夹只能是空文件夹

img


官方文档能选择文件夹,但是并不能判空

  • 写回答

2条回答 默认 最新

  • 开发技术控 2023-07-21 14:36
    关注

    引用gpt回答 有帮助的话 采纳一下
    在 Electron 的 dialog 中选择文件夹时,如果要限制只能选择空文件夹,可以通过结合使用 dialog.showOpenDialog 和 fs.readdir 来实现:

    1. 首先使用 dialog.showOpenDialog 显示文件夹选择弹窗:
      js
    const { dialog } = require('electron') 
    
    const paths = dialog.showOpenDialog({
      properties: ['openDirectory']  
    })
    
    
    1. 得到用户选择的文件夹路径后,使用 fs.readdir 读取文件夹内容:
      js
    const fs = require('fs')
    
    fs.readdir(paths[0], (err, files) => {
      // ...
    })
    
    
    1. 如果读取到的 files 数组长度不为 0,表示文件夹不为空,可以给出提示并让用户重新选择。
    2. 只有当 chosen folder 的 files 长度为 0 时,表示这是一个空文件夹,才继续后续逻辑。
      所以通过监听文件夹内容,可以过滤确保只有空文件夹被选择。
      另外,如果要允许选择含有特定文件类型的非空文件夹,也可以通过检测 files 来判断。
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月27日
  • 创建了问题 7月21日

悬赏问题

  • ¥15 已知平面坐标系(非直角坐标系)内三个点的坐标,反求两坐标轴的夹角
  • ¥15 webots有问题,无响应
  • ¥15 数据量少可以用MK趋势分析吗
  • ¥15 使用VH6501干扰RTR位,CANoe上显示的错误帧不足32个就进入bus off快慢恢复,为什么?
  • ¥15 大智慧怎么编写一个选股程序
  • ¥100 python 调用 cgps 命令获取 实时位置信息
  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上