Hướng dẫn delete file in folder nodejs - xóa tệp trong thư mục nodejs

Làm thế nào để xóa tất cả các tệp khỏi một thư mục mà không cần xóa một thư mục bằng Node.js? Tôi muốn xóa các tập tin tạm thời. Tôi chưa tốt với hệ thống tập tin.
I want to remove temporary files. I am not any good with filesystems yet.

Tôi đã tìm thấy phương pháp này, sẽ xóa các tệp và thư mục. Trong đó, một cái gì đó như

import fs from "node:fs/promises";
import path from "node:path";

const directory = "test";

for (const file of await fs.readdir(directory)) {
  await fs.unlink(path.join(directory, file));
}
7 sẽ không hoạt động.

Tôi không thực sự biết những lệnh nào nên sử dụng. Cảm ơn đã giúp đỡ.

Hướng dẫn delete file in folder nodejs - xóa tệp trong thư mục nodejs

Đã hỏi ngày 22 tháng 11 năm 2014 lúc 0:58Nov 22, 2014 at 0:58

Youbetternotyoubetternotyoubetternot

2.3562 Huy hiệu vàng15 Huy hiệu bạc18 Huy hiệu đồng2 gold badges15 silver badges18 bronze badges

3

Để xóa tất cả các tệp khỏi thư mục, trước tiên bạn cần liệt kê tất cả các tệp trong thư mục bằng

import fs from "node:fs/promises";
import path from "node:path";

const directory = "test";

for (const file of await fs.readdir(directory)) {
  await fs.unlink(path.join(directory, file));
}
8, sau đó bạn có thể sử dụng
import fs from "node:fs/promises";
import path from "node:path";

const directory = "test";

for (const file of await fs.readdir(directory)) {
  await fs.unlink(path.join(directory, file));
}
9 để xóa từng tệp. Ngoài ra
import fs from "node:fs/promises";
import path from "node:path";

const directory = "test";

for (const file of await fs.readdir(directory)) {
  await fs.unlink(path.join(directory, file));
}
8 sẽ chỉ đưa ra tên tệp, bạn cần liên kết với tên thư mục để có được đường dẫn đầy đủ. Nếu thư mục của bạn có các thư mục khác bên trong, bạn sẽ cần kiểm tra và sử dụng
// NON-ES6 EXAMPLE
const fsExtra = require('fs-extra');
fsExtra.emptyDirSync(fileDir);

// ES6 EXAMPLE
import * as fsExtra from "fs-extra";
fsExtra.emptyDirSync(fileDir);
1 thay thế.

Đây là một ví dụ

const fs = require("fs");
const path = require("path");

const directory = "test";

fs.readdir(directory, (err, files) => {
  if (err) throw err;

  for (const file of files) {
    fs.unlink(path.join(directory, file), (err) => {
      if (err) throw err;
    });
  }
});

Sử dụng lời hứa

import fs from "node:fs/promises";
import path from "node:path";

const directory = "test";

for (const file of await fs.readdir(directory)) {
  await fs.unlink(path.join(directory, file));
}

Đã trả lời ngày 11 tháng 2 năm 2017 lúc 23:23Feb 11, 2017 at 23:23

Rodrigo5244Rodrigo5244Rodrigo5244

4.8662 Huy hiệu vàng23 Huy hiệu bạc35 Huy hiệu Đồng2 gold badges23 silver badges35 bronze badges

8

Có, có một mô-đun fs-extra. Có một phương pháp

// NON-ES6 EXAMPLE
const fsExtra = require('fs-extra');
fsExtra.emptyDirSync(fileDir);

// ES6 EXAMPLE
import * as fsExtra from "fs-extra";
fsExtra.emptyDirSync(fileDir);
2 bên trong mô -đun này thực hiện công việc. Đây là một ví dụ:

// NON-ES6 EXAMPLE
const fsExtra = require('fs-extra');
fsExtra.emptyDirSync(fileDir);

// ES6 EXAMPLE
import * as fsExtra from "fs-extra";
fsExtra.emptyDirSync(fileDir);

Ngoài ra còn có một phiên bản không đồng bộ của mô -đun này. Bất cứ ai cũng có thể kiểm tra liên kết.

Hướng dẫn delete file in folder nodejs - xóa tệp trong thư mục nodejs

Đã trả lời ngày 27 tháng 2 năm 2019 lúc 11:03Feb 27, 2019 at 11:03

Hướng dẫn delete file in folder nodejs - xóa tệp trong thư mục nodejs

3

Có gói gọi là Rimraf rất tiện dụng. Đó là lệnh unix rm -rf cho nút.

Tuy nhiên, nó cũng có thể quá mạnh mẽ vì bạn có thể xóa các thư mục rất dễ dàng bằng cách sử dụng nó. Các lệnh sau sẽ xóa các tệp bên trong thư mục. Nếu bạn xóa *, bạn sẽ xóa thư mục nhật ký.

const rimraf = require('rimraf');
rimraf('./log/*', function () { console.log('done'); });

https://www.npmjs.com/package/rimraf

Đã trả lời ngày 6 tháng 3 năm 2018 lúc 7:37Mar 6, 2018 at 7:37

Nicolas Guérinetnicolas GuérinetNicolas Guérinet

1.9681 Huy hiệu vàng26 Huy hiệu bạc35 Huy hiệu Đồng1 gold badge26 silver badges35 bronze badges

2

Nó cũng có thể được thực hiện với một lớp lót đồng bộ mà không có sự phụ thuộc:

const { readdirSync, rmSync } = require('fs');
const dir = './dir/path';

readdirSync(dir).forEach(f => rmSync(`${dir}/${f}`));

Đã trả lời ngày 16 tháng 12 năm 2021 lúc 22:29Dec 16, 2021 at 22:29

JeffD23JeffD23JeffD23

7.5761 Huy hiệu vàng27 Huy hiệu bạc41 Huy hiệu đồng1 gold badge27 silver badges41 bronze badges

3

Xây dựng trên phản hồi của @waterscroll, nếu bạn muốn sử dụng async và chờ đợi trong nút 8+:

const fs = require('fs');
const util = require('util');
const readdir = util.promisify(fs.readdir);
const unlink = util.promisify(fs.unlink);
const directory = 'test';

async function toRun() {
  try {
    const files = await readdir(directory);
    const unlinkPromises = files.map(filename => unlink(`${directory}/${filename}`));
    return Promise.all(unlinkPromises);
  } catch(err) {
    console.log(err);
  }
}

toRun();

Đã trả lời ngày 22 tháng 3 năm 2018 lúc 5:15Mar 22, 2018 at 5:15

Jason Kimjason KimJason Kim

17.2K13 Huy hiệu vàng65 Huy hiệu bạc104 Huy hiệu đồng13 gold badges65 silver badges104 bronze badges

3

Nút vani ngắn 10 Giải pháp

import fs from 'fs/promises'

await fs.readdir('folder').then((f) => Promise.all(f.map(e => fs.unlink(e))))

Đã trả lời ngày 16 tháng 9 năm 2021 lúc 12:04Sep 16, 2021 at 12:04

4

Làm thế nào về việc chạy một dòng lệnh:

require('child_process').execSync('rm -rf /path/to/directory/*')

Đã trả lời ngày 29 tháng 1 năm 2021 lúc 7:48Jan 29, 2021 at 7:48

Rudy Huynhrudy HuynhRudy Huynh

4804 Huy hiệu bạc10 Huy hiệu đồng4 silver badges10 bronze badges

1

Cải thiện câu trả lời của Rodrigo, sử dụng Async và hứa hẹn

const fs = require('fs').promises;
const path = require('path');

const directory = 'test';

let files = [];
try{
   files = await fs.readdir(directory);
}
catch(e){
   throw e;
}

if(!files.length){
  return;
}

const promises = files.map(e => fs.unlink(path.join(directory, e)));
await Promise.all(promises)

Đã trả lời ngày 30 tháng 8 năm 2021 lúc 7:27Aug 30, 2021 at 7:27

Hướng dẫn delete file in folder nodejs - xóa tệp trong thư mục nodejs

Phiên bản hứa hẹn của chức năng tiện ích dọn dẹp thư mục:

const fs = require('fs').promises; // promise version of require('fs');

async function cleanDirectory(directory) {
    try {
        await fs.readdir(directory).then((files) => Promise.all(files.map(file => fs.unlink(`${directory}/${file}`))));
    } catch(err) {
        console.log(err);
    }
}

cleanDirectory("./somepath/myDir");

Đã trả lời ngày 3 tháng 3 lúc 6:45Mar 3 at 6:45

Hướng dẫn delete file in folder nodejs - xóa tệp trong thư mục nodejs

SridharkrithasridharkrithaSridharKritha

7.2352 Huy hiệu vàng43 Huy hiệu bạc41 Huy hiệu đồng2 gold badges43 silver badges41 bronze badges

Một sự thay thế khác:

import fs from "node:fs/promises";
import path from "node:path";

const directory = "test";

for (const file of await fs.readdir(directory)) {
  await fs.unlink(path.join(directory, file));
}
0

Điều này thực sự đang xóa hoàn toàn thư mục (với

// NON-ES6 EXAMPLE
const fsExtra = require('fs-extra');
fsExtra.emptyDirSync(fileDir);

// ES6 EXAMPLE
import * as fsExtra from "fs-extra";
fsExtra.emptyDirSync(fileDir);
3) nhưng sau đó ngay lập tức tái tạo nó để có vẻ như nó chỉ đơn thuần là bị biến mất. Điều này sẽ ảnh hưởng đến siêu dữ liệu thư mục và có thể quyền sở hữu, vì vậy nó sẽ không hoạt động trong tất cả các trường hợp sử dụng.

Đã trả lời ngày 28 tháng 6 lúc 21:47Jun 28 at 21:47

Electrovirelectrovirelectrovir

7671 Huy hiệu vàng16 Huy hiệu bạc19 Huy hiệu đồng1 gold badge16 silver badges19 bronze badges

Nếu bạn gặp lỗi này:

import fs from "node:fs/promises";
import path from "node:path";

const directory = "test";

for (const file of await fs.readdir(directory)) {
  await fs.unlink(path.join(directory, file));
}
1

Thêm đường dẫn thư mục vào

import fs from "node:fs/promises";
import path from "node:path";

const directory = "test";

for (const file of await fs.readdir(directory)) {
  await fs.unlink(path.join(directory, file));
}
2

Đã trả lời ngày 19 tháng 11 năm 2021 lúc 5:21Nov 19, 2021 at 5:21

Wazwazwaz

1.05515 huy hiệu bạc 30 huy hiệu đồng15 silver badges30 bronze badges

Điều này có thể được thực hiện với các phụ thuộc Vanilla NodeJS:

import fs from "node:fs/promises";
import path from "node:path";

const directory = "test";

for (const file of await fs.readdir(directory)) {
  await fs.unlink(path.join(directory, file));
}
3

Thêm đệ quy và lực đảm bảo rằng các thư mục không trống cũng bị xóa.

Đã trả lời ngày 3 tháng 9 lúc 19:28Sep 3 at 19:28

Hướng dẫn delete file in folder nodejs - xóa tệp trong thư mục nodejs

GrogugroguGrogu

1.69513 Huy hiệu bạc25 Huy hiệu đồng13 silver badges25 bronze badges

Bạn có thể sử dụng
// NON-ES6 EXAMPLE
const fsExtra = require('fs-extra');
fsExtra.emptyDirSync(fileDir);

// ES6 EXAMPLE
import * as fsExtra from "fs-extra";
fsExtra.emptyDirSync(fileDir);
4

import fs from "node:fs/promises";
import path from "node:path";

const directory = "test";

for (const file of await fs.readdir(directory)) {
  await fs.unlink(path.join(directory, file));
}
4

Đã trả lời ngày 18 tháng 2 lúc 14:18Feb 18 at 14:18

Hướng dẫn delete file in folder nodejs - xóa tệp trong thư mục nodejs

YairoproyairoproYairopro

7.6905 Huy hiệu vàng40 Huy hiệu bạc48 Huy hiệu đồng5 gold badges40 silver badges48 bronze badges

2

Một câu trả lời được chấp nhận:

import fs from "node:fs/promises";
import path from "node:path";

const directory = "test";

for (const file of await fs.readdir(directory)) {
  await fs.unlink(path.join(directory, file));
}
5

Đã trả lời ngày 24 tháng 10 lúc 3:48Oct 24 at 3:48

Hướng dẫn delete file in folder nodejs - xóa tệp trong thư mục nodejs

ʇoı ןןdǝɥɔs ʇoıdǝɥɔS ʇoıןןƎ

1.4015 huy hiệu vàng16 Huy hiệu bạc38 Huy hiệu đồng5 gold badges16 silver badges38 bronze badges

import fs from "node:fs/promises";
import path from "node:path";

const directory = "test";

for (const file of await fs.readdir(directory)) {
  await fs.unlink(path.join(directory, file));
}
6

Đã trả lời ngày 6 tháng 7 lúc 9:14Jul 6 at 9:14

Hướng dẫn delete file in folder nodejs - xóa tệp trong thư mục nodejs

Làm thế nào để bạn xóa một tệp trong nút js?

JS fs-extra remove () hàm.Hàm xóa () xóa tệp hoặc thư mục đã cho.Tất cả các tập tin bên trong một thư mục bị xóa.remove() Function. the remove() function deletes the given file or directory. All the files inside a directory are deleted.

Làm cách nào để làm trống một thư mục trong nút js?

Xóa một thư mục trống may mắn thay, nút.JS có một cách tích hợp để thực hiện điều này với mô-đun lõi hệ thống tệp (FS), có FS.Phương thức RMDIR (đường dẫn, gọi lại) sẽ xóa một thư mục trống.const fs = yêu cầu ("fs") const path = yêu cầu ("đường dẫn") const pathtodir = path.rmdir(path, callback) method that will remove an empty directory. const fs = require("fs") const path = require("path") const pathToDir = path.

Phương pháp nào được sử dụng để xóa một tệp trong nút JS?

Phương pháp rm ().FS.Phương thức rm () được sử dụng để xóa một tệp tại đường dẫn đã cho.. The fs. rm() method is used to delete a file at the given path.

Làm cách nào để xóa tệp .js?

JS - Xóa tệp.Để xóa một tệp trong nút.Có thể sử dụng không liên kết (đường dẫn, cuộc gọi lại) của JS, Node FS và có thể được sử dụng cho hoạt động tệp không đồng bộ và UnlinkSync (đường dẫn) có thể được sử dụng để hoạt động tệp đồng bộ.Node FS unlink(path, callback) can be used for asynchronous file operation and unlinkSync(path) can be used for synchronous file operation.