關於node對文件的讀取

来源:https://www.cnblogs.com/wilfredo/archive/2019/03/07/10491010.html
-Advertisement-
Play Games

設計: 通過終端git / cmd 獲取用戶輸入路徑,然後遍歷路徑下所有的文件,列印輸出。 因為需要命令行交互,所以引入prompt庫 (https://github.com/flatiron/prompt) 。 基於node的fs模塊完成。以下是代碼: 返回結果實例: ...


設計: 通過終端git / cmd 獲取用戶輸入路徑,然後遍歷路徑下所有的文件,列印輸出。

因為需要命令行交互,所以引入prompt庫 (https://github.com/flatiron/prompt) 。

基於node的fs模塊完成。以下是代碼:

 1 var prompt = require('prompt');
 2 var fs = require('fs');
 3 
 4 //開啟prompt
 5 prompt.start();
 6 
 7 // 自定義填寫內容和校驗
 8 var schema = {
 9     properties: {
10         'path': {
11             description: '文件地址',
12             required: 'true',
13             pattern: /[a-zA-Z]:(\\([a-zA-Z0-9_]+.[a-zA-Z0-9_]{1,16}))+/,    // 文件 | 文件夾校驗
14         }
15     }
16 };
17 
18 const readFileSync = (dir, prefix = ' -') => {
19     // 獲取當前目錄下所有文件 + 文件夾
20     let files_all = fs.readdirSync(dir);
21     for(let i = 0; i < files_all.length; i++) {
22         // 獲取單個文件信息
23         let stats = fs.lstatSync(dir + '\\' + files_all[i]);
24         // 判斷是都為文件夾
25         if (stats.isDirectory()) {
26             // 文件夾列印
27             console.log(prefix + files_all[i]);
28             // 文件夾重讀
29             readFileSync(dir + '\\' + files_all[i], '  ' + prefix);
30         } else {
31             console.log(prefix + files_all[i]);
32         }
33     }
34 }
35 
36 prompt.get(schema, (err, result) => {
37     console.log('    文件地址: ' + result.path);
38     // 開始同步讀取
39     readFileSync(result.path);
40     // 結束操作,關閉prompt
41     prompt.stop();
42 });

返回結果實例:

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 2019,不管是不是VR元年,VR行業確實在這一年勢頭凶猛,VR設備跨越式發展,然而VR內容確相對滯後。強調獨占性的各大VR內容平臺,更是將開發商分割成了不同的陣營。 ...
  • electron-vue 開發環境搭建(Windows環境) ...
  • 標題寫的全面一些,方便其他人檢索,我就是找了半天找不到資料,最後自己搞定了。 原理: 每次監聽到輸入值變化,就打一個時間戳,然後暫停2秒再去提交post驗證。 但是每次提交前,判斷一下之前打的時間戳和現在時間是否大於2秒,如果大於,則真去提交post,否則return掉不執行。 以下是代碼片段: ...
  • HTML: JS: start:就為你選擇的開始日期; end:就為你選擇的結束日期 此方式可選擇任意範圍的時間,時間格式可任意修改。 註:如果照片看不清,可以將網頁適當放大,以便觀看—謝謝。 ...
  • npm是Node Package Manager,也就是長說的NPM包管理器. 一般安裝node.js就會一起安裝. npm install npm install XXX //表示安裝模塊, 預設會安裝最新的安裝包 npm install [email protected] //表示安裝指定版本的安裝包,安裝完成 ...
  • jQuery概述 js與jQuery 獲取的對象 jQuery獲取的是jquery對象,js獲取的是js對象(dom對象),dom對象不能調用jquery的方法,jquery對象也不能調用dom對象的方法 dom對象轉換為jQuery對象:$(dom對象) 層級選擇器 子代選擇器 $("ul>li" ...
  • 組成 作用:(運營在用戶端瀏覽器) 特征:面向對象 BOM: 瀏覽器對象模型 完成視窗與視窗之間的通信,window對象是其核心對象, history【前進,後退,刷新】 是一個對象 使用【window.history】 location【地址】 DOM【】 screen【屏幕】 frames[真窗 ...
  • React Hooks是React 16.8發佈以來最吸引人的特性之一。在開始介紹React Hooks之前,讓咱們先來理解一下什麼是hooks。wikipedia是這樣給hook下定義的: In computer programming, the term hooking covers a ran ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...