如何使用JavaScript从Windows服务器路径目录中仅获取图片文件名
用JavaScript从Windows服务器指定目录提取图片文件名的实现方案
前提说明:浏览器端JavaScript受安全沙箱限制,无法直接访问服务器本地文件系统,以下方案基于Node.js运行环境,且运行脚本的设备需拥有对应Windows共享目录的访问权限。
实现逻辑
- 依赖Node.js内置的
fs/promises和path模块,无需安装第三方依赖 - 先定义目标共享路径、允许的图片后缀白名单
- 读取目录内容后做两层筛选:仅保留文件、仅保留后缀在图片白名单内的文件
完整代码示例
const fs = require('fs/promises'); const path = require('path'); // Windows共享路径注意反斜杠需要转义,原路径\\sampelDirectory\imageFolder写为以下格式 const TARGET_DIR = '\\\\sampelDirectory\\imageFolder'; // 可按需扩展支持的图片后缀 const IMG_EXTENSIONS = ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp', '.svg']; async function getImageFiles(dirPath) { try { // 读取目录内容,同时获取文件类型信息 const dirEntries = await fs.readdir(dirPath, { withFileTypes: true }); // 筛选出图片文件 const imageFiles = dirEntries .filter(entry => entry.isFile()) // 过滤子目录,仅保留文件 .map(entry => entry.name) .filter(fileName => { const ext = path.extname(fileName).toLowerCase(); return IMG_EXTENSIONS.includes(ext); }); return imageFiles; } catch (err) { console.error('读取目录失败,请检查路径是否正确、是否有访问权限:', err.message); throw err; } } // 调用示例 getImageFiles(TARGET_DIR).then(imageList => { console.log('提取到的图片文件名:', imageList); });
扩展说明
- 如果需要遍历子目录下的所有图片,可以在筛选时对目录项做递归处理
- 如果路径访问报错,优先检查共享路径拼写、设备是否在同一工作组/域、是否有目录的读取权限
内容的提问来源于stack exchange,提问作者ArunKumar s
相关产品推荐
相关产品推荐

