2013-11-28 7 views
10

list_file_to_deleteの3つのファイルを削除しますが、「ここに3つのファイルへのパス」とは何ですか?ループ/ for/forEach関数はすべてを削除するか、3つのパスを持つ文字列が必要でしょうかvar string = "...a1.jpg, ...a2.jpg,...a3.jpg"delete.jsファイルnodejs内のファイルパスとファイルを削除

var list_file_to_delete = ["/images/a1.jpg", "/images/a2.jpg", "/images/a3.jpg"] 
fs.unlink(path to three files here, function(err) {console.log("success")}) 

これはmyappディレクトリ

myapp 
     /app 
      /js 
      delete.js 
     /public 
      /images 
        a1.jpg 
        a2.jpg 
        a3.jpg 
     server.js 
+0

backticksは引用符ではありません。それらを使用してコードのみを囲みます。 –

答えて

15

fs.unlinkあるに予め

のおかげでは、1つのファイルを取るので、各要素のリンクを解除:

list_of_files.forEach(function(filename) { 
    fs.unlink(filename); 
}); 

や、あなたの場合シーケンシャルではあるが非同期のdeleteが必要あなたは次のES5コードを使用することができます:

(function next(err, list) { 
    if (err) { 
    return console.error("error in next()", err); 
    } 
    if (list.length === 0) { 
    return; 
    } 
    var filename = list.splice(0,1)[0]; 
    fs.unlink(filename, function(err, result) { 
    next(err, list); 
    }); 
}(null, list_of_files.slice())); 
+0

ありがとうございました。ファイルへのパスについては、/../public/images/a1.jpgは動作しません。 – user3044147

+0

パスは 'node yourscript.js'で使用したディレクトリとの相対パスです。 'myapp'ディレクトリに置くと、ファイルを" ./public/images/a1.jpg "などのリンクを解除します。 –

+0

これは今、うまくいきます。しかし、なぜ私はj​​sディレクトリ内の公開ディレクトリの場合に相対パスを使うと思うのか分かりません。 – user3044147

関連する問題