ホームページ ウェブフロントエンド jsチュートリアル ノードファイルの一括リネーム例の詳細説明

ノードファイルの一括リネーム例の詳細説明

Jan 20, 2018 pm 05:45 PM
node 重命名

この記事では、主にノードファイルの名前を一括変更する例を紹介します。編集者が非常に優れていると考えたので、参考として共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。

実際の要件では、ファイルのバッチ (テキスト、画像など) の名前を変更し、番号に従って番号を付ける必要があります。この機会を利用して、ノードの fs ファイル操作に慣れ、ファイル名をバッチ変更するスクリプトを作成しました。

要件

現在以下の画像ファイルが存在します

ファイル名を一括で変更し、統一されたプレフィックス名に変更し、変更後の効果を自動的に増やす必要があります

最も簡単な手動操作は、ファイルの名前を 1 つずつ変更することですが、DRY (同じことを繰り返さない) 原則に沿って、ノード スクリプトを作成することをお勧めします。

調査

ノードでファイル操作を実行するには、fsモジュールを理解する必要があります

fsモジュールには同期と非同期の2つの方法があります

ファイルを読む


//异步
fs.readFile('test.txt', 'utf-8' (err, data) => {
  if (err) {
    throw err;
  }
  console.log(data);
});

//同步
let data = fs.readFileSync('test.txt');
console.log(data);
ログイン後にコピー

Asynch皮肉なことにファイル読み込みパラメータ: ファイルパス、エンコード方式、コールバック関数

ファイル書き込み


fs.writeFile('test2.txt', 'this is text', { 'flag': 'w' }, err => {
  if (err) {
    throw err;
  }
  console.log('saved');
});
ログイン後にコピー

ファイル書き込みパラメータ: 対象ファイル、書き込み内容、書き込みフォーム、コールバック関数

フラグ書き込みメソッド:

r:ファイルの読み取り
w: ファイルの書き込み
a: 追加

ディレクトリの作成


fs.mkdir('dir', (err) => {
  if (err) {
    throw err;
  }
  console.log('make dir success');
});
ログイン後にコピー

dir は新しいディレクトリの名前です

ディレクトリの読み取り


fs.readdir('dir',(err, files) => {
  if (err) {
    throw err;
  }
  console.log(files);
});
ログイン後にコピー

dir が読み取られますディレクトリ名、 files は、ディレクトリ配下のファイルまたはディレクトリ名の配列です。

fs.stat('test.txt', (err, stats)=> {
  console.log(stats.isFile());     //true
})
ログイン後にコピー

stats メソッドで、ファイル情報を取得します。 isファイル()


ファイルかどうか

stats.isDirectory()ディレクトリかどうかstats.isBlockDevice()ブロックデバイスかどうかstats.isCharacterDevice( 」 ()ソケットかどうか読み取りストリームを作成書き込みストリームを作成
let stream = fs.createWriteStreamr('test_copy.txt');
ログイン後にコピー
開発開発アイデア: 読むコピー元のディレクトリ保存ディレクトリがあるか確認保存ディレクトリが存在する場合は新規ディレクトリを作成ファイルをコピー
let stream = fs.createReadStream('test.txt');
ログイン後にコピー

コピーした内容がファイルかどうかを判断


作成読み取りストリーム


書き込みストリームを作成

ファイルコンテンツを書き込むためのリンクパイプ

  1. let fs = require('fs'),
      src = 'src',
      dist = 'dist',
      args = process.argv.slice(2),
      filename = 'image',
      index = 0;
    
    //show help
    if (args.length === 0 || args[0].match('--help')) {
      console.log('--help\n \t-src 文件源\n \t-dist 文件目标\n \t-n 文件名\n \t-i 文件名索引\n');
      return false;
    }
    
    args.forEach((item, i) => {
      if (item.match('-src')) {
        src = args[i + 1];
      } else if (item.match('-dist')) {
        dist = args[i + 1];
      } else if (item.match('-n')) {
        filename = args[i + 1];
      } else if (item.match('-i')) {
        index = args[i + 1];
      }
    });
    
    fs.readdir(src, (err, files) => {
      if (err) {
        console.log(err);
      } else {
        fs.exists(dist, exist => {
          if (exist) {
            copyFile(files, src, dist, filename, index);
          } else {
            fs.mkdir(dist, () => {
              copyFile(files, src, dist, filename, index);
            })
          }
        });
      }
    });
    
    function copyFile(files, src, dist, filename, index) {
      files.forEach(n => {
        let readStream,
          writeStream,
          arr = n.split('.'),
          oldPath = src + '/' + n,
          newPath = dist + '/' + filename + index + '.' + arr[arr.length - 1];
        fs.stat(oldPath, (err, stats) => {
          if (err) {
            console.log(err);
          } else if (stats.isFile()) {
            readStream = fs.createReadStream(oldPath);
            writeStream = fs.createWriteStream(newPath);
            readStream.pipe(writeStream);
          }
        });
        index++;
      })
    }
    ログイン後にコピー

    効果

  2. 概要
  3. Nodeは私たちを助ける多くのモジュールを提供します完全な機能開発JavaScript がブラウザーに限定されないように、さまざまなニーズに合わせてスクリプトを自分で作成してみると、これらのモジュールの理解が深まり、オフィスの効率が向上します。

  4. 関連おすすめ:

  5. ノードを使ってファイル名を一括変更する機能を実装する方法
  6. PHPを使ってフォルダ内の全ファイルの名前を一括変更する実装方法の紹介
  7. phpバッチリネーム
  8. 以上がノードファイルの一括リネーム例の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windows 11 では、ドライバーはこのデバイスに ene.sys をロードできません Windows 11 では、ドライバーはこのデバイスに ene.sys をロードできません May 05, 2023 am 09:13 AM

多くの Windows 11 ユーザーは、「このデバイス (ene.sys) にドライバーを読み込むことができませんでした」というエラー メッセージが表示され、ドライバーがシステムに読み込めなくなり、脆弱としてマークされます。ただし、この問題は主に PC を Windows 11 にアップグレードしたユーザーから報告されています。このエラーは、システムのオペレーティング システムのアップデートの問題により破損したドライバーとファイルに密接に関連しています。アップデート後に Windows 11 コンピューターの電源を入れるたびにこの「ene.sys」エラーが発生する場合は、この記事を読み続けてください。ここでは、PC でこのエラーが発生した場合に使用できるトラブルシューティング方法をいくつか紹介します。解決策 1 – オプションのアップデートをインストールする ステップ 1。 Windows+Rグループを使用する

Windows 11 でプリンターの名前をすばやく変更する 4 つの方法 Windows 11 でプリンターの名前をすばやく変更する 4 つの方法 Sep 11, 2023 pm 03:26 PM

オフィスに多数のプリンターがある場合、プリンターのリストが長くなり、作業が面倒になることがあります。さらに、複数のプリンタは通常、似たような名前を意味するため、少し混乱する可能性があります。無限のリストをスクロールしながら、間違ったプリンタに印刷ジョブを送信してしまうことは絶対に避けてください。幸いなことに、これらの問題はすべて、以下で説明する簡単な名前変更テクニックで解決できます。 Windows 11 でプリンターの名前を変更するにはどうすればよいですか? 1. 設定アプリを使用してキーをタップし、[設定] をクリックします。 Windows では、[Bluetooth とデバイス] をクリックし、[プリンターとスキャナー] を選択します。名前を変更するプリンターを選択します。 「プリンターのプロパティ」をクリックします。 「全般」タブに移動し、キーを押します。

システム起動時に Explorer.exe が起動しない [修正] システム起動時に Explorer.exe が起動しない [修正] Jun 03, 2023 am 08:31 AM

最近、多くの Windows ユーザーが Windows システムの重大な問題に遭遇し始めています。問題は、システムのロード後に Explorer.exe が起動できず、ユーザーがファイルやフォルダーを開けないことです。ただし、Windows ユーザーは場合によってはコマンド プロンプトを使用して Windows エクスプローラーを手動で開くことができますが、これはシステムを再起動するたびに、またはシステム起動後に実行する必要があります。これは問題となる可能性があり、以下に説明する要因が原因です。システムファイルが破損しています。高速スタートアップ設定を有効にします。ディスプレイドライバーが古いか問題があります。システム内の一部のサービスに変更が加えられました。変更されたレジストリ ファイル。上記のすべての要素を念頭に置いて、ユーザーに確実に役立ついくつかの要素を考え出しました。

Python での SVM の例 Python での SVM の例 Jun 11, 2023 pm 08:42 PM

Python のサポート ベクター マシン (SVM) は、分類および回帰の問題を解決するために使用できる強力な教師あり学習アルゴリズムです。 SVM は、高次元データや非線形問題を処理する場合に優れたパフォーマンスを発揮し、データ マイニング、画像分類、テキスト分類、バイオインフォマティクスなどの分野で広く使用されています。この記事では、Python で分類に SVM を使用する例を紹介します。 scikit-learn ライブラリの SVM モデルを使用します。

win10でファイルのサフィックスの名前を一括変更する方法 win10でファイルのサフィックスの名前を一括変更する方法 Jul 06, 2023 pm 07:37 PM

win10でファイルのサフィックスの名前をバッチ変更する方法は?現在、多くのユーザーがWin10システムを使用しており、通常コンピューターを使用するとき、ショートカットキーを使用すると操作がより便利になるため、多くのショートカットキーを使用することがよくありますが、ファイルの名前を一括で変更するにはどうすればよいですか?以下、エディターがWin10でファイル名を一括変更する操作を紹介します。 Win10 でファイルの名前を一括変更する方法 1. 名前を変更したいファイルをすべて選択します。 2. 選択したファイルを右クリックし、「名前の変更」を選択します。 3. ファイルの名前が変更されると、他のファイルにも順番にシリアル番号が付けられます。方法は非常に簡単ですが、修正する際にはファイルの順番や修正後のサンプルファイルの並び替え位置に注意する必要があります。シリアル番号は、変更されたサンプル ファイルから始まります。

Windows 10/11 での CS:GO のクラッシュ、フリーズ、黒い画面の問題 Windows 10/11 での CS:GO のクラッシュ、フリーズ、黒い画面の問題 Apr 30, 2023 pm 06:40 PM

PC 上の他のゲームと同様に、Counter-Strike: Global Offensive は起動時にクラッシュ、フリーズ、または黒い画面でスタックする可能性があります。 Counter-Strike は市場で低リソースの fps ゲームの 1 つであり、Tudou PC でも実行できます。 CSGO は CPU 指向のゲームですが、システム GPU も重要な役割を果たします。黒い画面の問題は GPU の問題に関連しています。問題を解決するには、次の簡単な解決策に従ってください。解決策 1 – 互換性をオフにする Windows 8 または 7 で互換モードでゲームを実行している場合は、互換性をオフにします。 CSGO は Windows のすべてのバージョン (WindowsXP 以降) で動作します。

PHP 関数の紹介 - rename(): ファイルまたはディレクトリの名前を変更する PHP 関数の紹介 - rename(): ファイルまたはディレクトリの名前を変更する Jul 25, 2023 pm 12:10 PM

PHP 関数の紹介 - rename(): ファイルまたはディレクトリの名前変更 はじめに: PHP では、rename() 関数を使用してファイルまたはディレクトリの名前を変更します。ファイルまたはディレクトリの名前を簡単に変更する方法を提供します。単一のファイルであっても、ディレクトリ全体であっても、この関数を使用して名前変更操作を実行できます。名前変更プロセスは、ソース ファイルまたはディレクトリの名前とターゲット名を指定することで簡単に実行できます。構文: boolrename(string$source,str

JavaでGsonを使用してJSONのプロパティの名前を変更するにはどうすればよいですか? JavaでGsonを使用してJSONのプロパティの名前を変更するにはどうすればよいですか? Aug 27, 2023 pm 02:01 PM

Gson@SerializedName アノテーションは JSON にシリアル化でき、指定された名前の値をフィールド名として持つことができます。このアノテーションは、Gson インスタンスに設定されているデフォルトのフィールド命名ポリシーを含む、あらゆる FieldNamingPolicy をオーバーライドできます。 GsonBuilder クラスを使用して、さまざまな命名戦略を設定できます。構文@Retention(value=RUNTIME)@Target(value={FIELD,METHOD})public@interfaceSerializedNameExample importcom.google.gson.annotations.*;

See all articles