wwwwwllllk 发表于 2024-3-19 17:27:31

使用node移动文件目录

文件目录下面有图片和压缩包,我想把图片都移动到一个图片目录下面,以下是代码,希望对你有所帮助

```js
const fs = require('fs');
const path = require('path');
const sourceDir = 'E:\\BaiduNetdiskDownload\\html模板网页版\\单页\\单页';
const imageDir = 'E:\\BaiduNetdiskDownload\\html模板网页版\\单页\\单页\\图片';

fs.readdir(sourceDir, (err, files) => {
if (err) {
    console.error('Error reading directory:', err);
    return;
}

files.forEach(file => {
    // Node.js中的path模块的join方法,将源目录路径sourceDir和文件名file拼接成完整的文件路径filePath
    const filePath = path.join(sourceDir, file);

    fs.stat(filePath, (err, stats) => {
      if (err) {
      console.error('Error stating file:', err);
      return;
      }

      if (stats.isFile() && ['.jpg', '.jpeg', '.png', '.gif'].includes(path.extname(file).toLowerCase())) {
      const destFilePath = path.join(imageDir, file);
      // Node.js中的fs模块的rename方法,将源文件filePath移动到目标文件路径destFilePath
      fs.rename(filePath, destFilePath, err => {
          if (err) {
            console.error('Error moving file:', err);
          } else {
            console.log(`Moved ${file} to ${imageDir}`);
          }
      });
      }
    });
});
});

```

王一之 发表于 2024-3-20 11:46:10

嵌套地狱

steven026 发表于 2024-3-20 15:41:44

王一之 发表于 2024-3-20 11:46
嵌套地狱

同fs自带的同步函数就不会嵌套了
就是不知道会不会有啥问题 好像不能设置timeout

王一之 发表于 2024-3-20 15:46:09

steven026 发表于 2024-3-20 15:41
同fs自带的同步函数就不会嵌套了
就是不知道会不会有啥问题 好像不能设置timeout ...

fs的同步函数会阻塞线程,会影响其它操作
页: [1]
查看完整版本: 使用node移动文件目录