Node.js 本身並沒有提供直接複製檔案的 API,如果想用 Node.js 複製檔案或目錄,需要藉助其他的 API 來實作。複製單一的檔案可以直接用 readFile、writeFile,這樣比較簡單。如果是複製一個目錄下的所有文件,目錄下可能還包含了子目錄,那麼此時就需要用到更高階點的 API 了。
流
流是 Node.js 移動資料的方式,Node.js 中的流是可讀/可寫的,HTTP 和檔案系統模組都有用到流。在檔案系統中,使用流來讀取檔案的時候,對於一個大檔案可能不會一次讀取完,而是會分好幾次讀取完,讀取的時候會回應資料事件,在檔案沒讀取完的時候就可以對讀取的資料進行操作。同理,在寫入流的時候也和讀取時一樣,大檔案並不會一次寫入。這種移動資料的方式是非常有效率的,尤其是對於大檔案而言,使用流比等待將大檔案全部讀取完再來操作檔案要快得多。
管
如果想在讀取流和寫入流的時候做完全的控制,可以使用資料事件。但對於單純的檔案複製來說讀取流和寫入流可以透過管道來傳輸資料。
實際應用:
var fs = require( 'fs' ),
stat = fs.stat;
/*
* 複製目錄中的所有檔案包含子目錄
/*
* 複製目錄中的所有檔案包含子目錄
* @param{ String } 需要複製的目錄
* @param{ String } 複製到指定的目錄
*/
var copy = function( src, dst ){
// 讀取目錄中所有的檔案/目錄
fs.readdir( src, function( err, paths ){
if( err }
paths.forEach(function( path ){
var _src st '/' path,
readable, writable;
throw err;
}
// 判斷是否為文件
// 創建讀取流
readable = fs.createReadStream( _src );
// 創建寫入流
writable = fs.createWriteStream( _dst );
// 通過管道來傳輸流
readable.pipe( writable );
}
// 如果是目錄則遞歸調用自身
else if( st.isDirectory() ){
> }
});
;
// 在複製目錄前需要判斷目錄是否存在,不存在需要先建立目錄
var exists = function( src, dst, callback ){
fs.exists( dst, function( exists ) {
// 存在
// 不存在
else{
fs.mk , function(){
callback( src, dst );
;
};
// 複製目錄
exists( './src', './build', copy );

Vercel是什么?本篇文章带大家了解一下Vercel,并介绍一下在Vercel中部署 Node 服务的方法,希望对大家有所帮助!

gm是基于node.js的图片处理插件,它封装了图片处理工具GraphicsMagick(GM)和ImageMagick(IM),可使用spawn的方式调用。gm插件不是node默认安装的,需执行“npm install gm -S”进行安装才可使用。

如何用pkg打包nodejs可执行文件?下面本篇文章给大家介绍一下使用pkg将Node.js项目打包为可执行文件的方法,希望对大家有所帮助!

本篇文章带大家详解package.json和package-lock.json文件,希望对大家有所帮助!

本篇文章给大家分享一个Nodejs web框架:Fastify,简单介绍一下Fastify支持的特性、Fastify支持的插件以及Fastify的使用方法,希望对大家有所帮助!

node怎么爬取数据?下面本篇文章给大家分享一个node爬虫实例,聊聊利用node抓取小说章节的方法,希望对大家有所帮助!

本篇文章给大家分享一个Node实战,介绍一下使用Node.js和adb怎么开发一个手机备份小工具,希望对大家有所帮助!

先介绍node.js的安装,再介绍使用node.js构建一个简单的web服务器,最后通过一个简单的示例,演示网页与服务器之间的数据交互的实现。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Linux新版
SublimeText3 Linux最新版

記事本++7.3.1
好用且免費的程式碼編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver CS6
視覺化網頁開發工具