国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Node.js學習之路07——fs文件系統之對文件或目錄執行的其他操作

lordharrd / 3507人閱讀

摘要:如果打開一個文件的符號鏈接文件進行編輯,操作系統將自動打開符號鏈接中所指向的原文件進行編輯,如果打開一個目錄的符號鏈接文件進行文件的操作編輯或刪除操作,則操作系統將西東打開符號鏈接中所指向的原目錄并執行相應的操作。

8. 對文件或目錄執行的其他操作 8.1 修改文件名字或移動文件目錄fs.rename

fs.rename(oldPath, newPath, callback(err))

使用rename方法移動文件或目錄,當移動后的路徑與原路經為同一路徑,則修改該文件的名字

若移動后的文件名或目錄名與原文件名或目錄名不同時,則執行文件或目錄的移動操作

const fs = require("fs");
let mkdir = "./mkdir";
fs.rename("./one", "./two", (err) => {
    if (err) {
        console.log(`fs.rename file one to two failed~`);
        return false;
    }
    console.log(`fs.rename file one to two success~`);
})
8.2 創建文件的硬鏈接fs.link

fs.link(oldPath, newPath)

srcPath參數用于指定需要被創建硬鏈接的文件的完整路徑及文件名

dstPath參數用于指定被創建硬鏈接的完整路徑及文件名,該硬連接與源文件必須位于同一卷中

異步創建與刪除文件的硬鏈接fs.linkSync(srcPath, dstPath)

const fs = require("fs");
let linkFile = "link.txt";
let linkCopyFile = "linkCopy.txt";
let data = "創建與刪除文件的硬鏈接";
fs.writeFile("./link.txt", data, (err) => {
    if (err) {
        console.log(`write file failed`);
        return false;
    }
    fs.link(linkFile, linkCopyFile, (err) => {
        if (err) {
            console.log(`fs.link ${linkFile} file failed~`);
            return false;
        }
        console.log(`fs.link ${linkCopyFile} file success~`);
    });
});
8.3 刪除文件的硬鏈接fs.unlink

fs.unlink(path, callback(err))

const fs = require("fs");
let linkFile = "link.txt";
let linkCopyFile = "linkCopy.txt";
let data = "創建與刪除文件的硬鏈接";
fs.unlink(linkCopyFile, (err) => {
    if (err) {
        console.log(`fs.unlink ${linkFile} file failed~`);
        return false;
    }
    console.log(`fs.unlink ${linkCopyFile} file success~`);
})
8.4 創建與查看符號鏈接
符號鏈接,是一種特殊的文件,這個文件中僅包含了另一個文件或目錄的路徑及文件名或目錄名。如果打開一個文件的符號鏈接文件進行編輯,操作系統將自動打開符號鏈接中所指向的原文件進行編輯,如果打開一個目錄的符號鏈接文件進行文件的操作編輯或刪除操作,則操作系統將西東打開符號鏈接中所指向的原目錄并執行相應的操作。如果刪除符號鏈接文件,不會刪除原文件或目錄,如果刪除或移動原文件互哦目錄,符號鏈接文件也不會被刪除,這是會產生一種稱為斷鏈的現象

fs.symlink(srcPath, dstPath, [type], callback(err))

type--> file, dir(default,非windows只能使用dir), function(only windows)

同步創建與查看符號鏈接fs.symlinkSync(srcPath, dstPath, [type])

const fs = require("fs");
fs.symlink("./one.js", "./two.js", "file", (err) =>{
    if(err) {
        console.log(`fs.symlink one.js to two.js failed~`, err);
        return false;
    } 
    console.log(`fs.symlink one.js to two.js success~`)
})
8.5 readlink讀取符號鏈接

同步讀取符號鏈接fs.readlinkSync(path),path指定符號鏈接的路徑及文件名

const fs = require("fs");
fs.symlink("./one.js", "./two.js", "file", (err) => {
    if (err) {
        console.log(`fs.symlink one.js to two.js failed~`, err);
        return false;
    }
    console.log(`fs.symlink one.js to two.js success~`);
    fs.readlink("./two.js", (err, linkString) => {
        if (err) {
            console.log(`fs.readlink file failed~`, err);
            return false;
        }
        console.log(linkString);
    })
});
/**
* fs.symlink one.js to two.js success~
* ./one.js
* **/
8.6 截斷文件fs.truncate()

所謂對文件進行截斷操作,是指一種首先清除文件內容,然后修改文件尺寸的操作

換句話說就是對文件內容進行修改

fs.truncate(filename, length, callback(err))

同步截斷文件fs.truncateSync(filename, length)

one.js原本內容

console.log("this is one.js");

one.js文件進行截斷

const fs = require("fs");
fs.truncate("./one.js", 10, (err) => {
    if (err) {
        console.log(`對文件進行截斷操作失敗~, ${err}`);
        return false;
    }
    fs.stat("./one.js", (err, stats) => {
        if (err) {
            console.log(`fs.stat file one.js failed, ${err}`);
            return false;
        }
        console.log(`fs.stat file one.js success~`);
        console.log(`./one.js size: ${stats.size} bytes`);
    });
});
/**
* console.lo
* **/
8.7 刪除空目錄

只能刪除空目錄,如果不是空目錄,會刪除失敗

const fs = require("fs");
fs.rmdir("./dirOne", (err) => {
    if (err) {
        console.log(`fs.rmdir dir one failed~, ${err}`);
        return false;
    }
    console.log(`fs.rmdir dir one success~`);
});
8.8 監視文件或目錄

使用watchFile方法對文件進行監視,并且在監視到文件被修改時執行某些處理方法

fs.watchFile(filename, [options], listener)

options 是一個對象,persistent屬性默認為true,所以當監視文件后,應用程序沒有被立即退出,改為false就會立即退出。

options interval屬性方法設置每隔多少毫秒檢查一下該文件有沒有發生變化

function(curr, prev);,currfs.Stats對象,代表被修改之后的當前文件

prev參數值也是一個fs.Stats對象,代表被修改之前的當前文件

const fs = require("fs");
let filename = "./one.js"
fs.watchFile(filename, {
    persistent: true,
    interval: 100
}, (curr, prev) => {
    if (Date.parse(prev.ctime) === 0) {
        console.log(`${filename}文件被創建`);
    } else if (Date.parse(curr.ctime) === 0) {
        console.log(`${filename}文件被刪除`);
    } else if (Date.parse(prev.mtime) !== Date.parse(curr.mtime)) {
        console.log(`${filename}文件被修改`);
    } else {
        console.log(`${filename}文件沒有被操作`);
    }
    if (Date.parse(curr.ctime) !== 0) {
        console.log(`${filename}文件的大小為${curr.size}bytes`);
    }
})
8.9 取消監控

fs.unwatchFile(filename, [listener])

watch方法,對文件或目錄進行監視,并且在監視到文件或目錄被修改時執行某些處理

fs.watch(filename, [options], [listener])

var watcher = fs.watch("./file01.txt", function (event, filename) {
    console.log(event);//事件名
    console.log(filename);//文件名
    watcher.close();//關閉監視
});
8.10 遍歷文件夾里所有的文件和目錄,并判斷某一個文件里是否有某一些內容
const fs = require("fs");

let filePath = path.resolve("/root/files/order");
fileDisplay(filePath);

function fileDisplay(filePath) {
    fs.readdir(filePath, (err, files) => {
        // 這里的files是根目錄下的直接子文件和子目錄
        if (err) {
            console.error(err);
            return false;
        }
        files.forEach((filename) => {
            // 對根目錄下的直接子文件和子目錄進行遍歷
            // 利用path的拼接路徑方法
            // 找到該文件的路徑
            let fileDir = path.join(filePath, filename);
            console.log(fileDir);
            fs.stat(fileDir, (err, stats) => {
                // 利用fs的stat方法判斷遍歷的對象是文件還是目錄
                if (err) {
                    console.error("get file stats info failed");
                    return false;
                }
                let isFile = stats.isFile();
                let isDir = stats.isDirectory();
                if (isFile) {
                    if (fileDir.indexOf("user.js") > 0) {
                        fs.readFile(fileDir, (err, targetFileData) => {
                            if (targetFileData.indexOf("var id = "") > 0) {
                                console.log("the user.js has id");
                            } else {
                                console.log("the user.js has not id", fileDir);
                            }
                        })
                    }
                } else {
                    fileDisplay(fileDir);
                }
            })
        })
    })
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/92876.html

相關文章

  • Node.js學習之路14——Process進程

    摘要:在中,只支持單線程。在這種場合下,如果能夠使用多進程,則可以為每個請求分配一個進程,從而可以更好地使用服務器端的資源。進程進程對象的屬性用于運行應用程序的可執行文件的絕對路徑的版本號及其各依賴的版本號當前運行的平臺用于讀入標準輸入流的對象。 Process 在Node.js中,只支持單線程。但是在應用程序中,如果只使用單線程進行操作,從接收請求開始到返回響應為止的這段時間內可能存在很長...

    darry 評論0 收藏0
  • Node.js學習之路06——fs文件系統目錄操作文件信息

    6. 目錄操作 6.1 創建目錄 如果存在該目錄,就創建失敗 同步創建目錄fs.mkdirSync(path, [mode]) const fs = require(fs); let mkdir = ./mkdir; fs.mkdir(mkdir, (err) => { if (err) { console.log(`mkdir ${mkdir} file faile...

    用戶83 評論0 收藏0
  • Node.js學習之路08——fs文件系統之stream流基本介紹

    摘要:中各種用于讀取數據的對象對象描述用于讀取文件代表客戶端請求或服務器端響應代表一個端口對象用于創建子進程的標準輸出流。如果子進程和父進程共享輸入輸出流,則子進程的標準輸出流被廢棄用于創建子進程的標準錯誤輸出流。 9. stream流 fs模塊中集中文件讀寫方法的區別 用途 使用異步方式 使用同步方式 將文件完整讀入緩存區 readFile readFileSync 將文件部...

    BoYang 評論0 收藏0
  • Node.js學習之路05——fs文件系統文件寫入和讀取

    fs文件系統 在Node.js中,提供一個fs模塊,以實現文件及目錄的讀寫操作。 1. 同步和異步方法 一般來講,讀取文件使用異步的方法,但是在讀取例如系統配置文件時,應該使用同步的方法 2. 普通文件寫入和讀取 2.1 文件寫入 2.1.1 寫入一個基本的文本文件 如果不存在要寫入的文件,那么將會自動創建一個文件 const fs = require(fs); let writeData = T...

    leanote 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<