我有一個文件夾與此結構:節點和Javascript:如何以編程方式訪問和循環通過文件的文件夾
folder
|--file1.csv
|--file2.csv
|--file3.csv
|--file4.csv
有沒有一種方法以編程寫一個腳本去到一個文件夾並打開一次一個文件做一些事情,然後打開下一個文件,直到該文件夾中的所有文件都被檢查過了?
我有一個文件夾與此結構:節點和Javascript:如何以編程方式訪問和循環通過文件的文件夾
folder
|--file1.csv
|--file2.csv
|--file3.csv
|--file4.csv
有沒有一種方法以編程寫一個腳本去到一個文件夾並打開一次一個文件做一些事情,然後打開下一個文件,直到該文件夾中的所有文件都被檢查過了?
您可以使用節點fs.*Sync()
方法將阻止,直到操作完成。
readdirSync
函數會給你一個目錄中的文件(和子目錄,它們也是文件)的列表,並且statSync
會告訴你,如果它是目錄或文件。
你應該知道你的腳本在做阻塞操作時不能做其他事情。因此,不要將該代碼作爲更大應用程序中的函數導出和使用。
如果您想重複使用它,您應該以異步方式編寫代碼(即使用回調並相應地處理您的狀態/值)。或者使用其中一個實現必要功能的npm模塊(「walk」似乎是您的用例的一個很好的搜索關鍵字)。
使用同步方法可能是一個非常糟糕的主意,因爲它不會阻止服務器上的當前請求,它會阻止對服務器的所有請求 –
一個*在另一個或所有在同一時間?我問問文件操作是異步的。 – Aron
一個接一個 – JnL
[node fs](https://nodejs.org/api/fs.html)與[異步](https://github.com/caolan/async) –