0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JScript 覚書(実践編その弐:フォルダを操作してみる)

Posted at

はじめに

@GORO_Nekoです。ご存知の方ご無沙汰してます。初めての方お初にお目にかかります。

今回も、先にお断りをば一言。

以下は、自分が所属する会社の意向を反映したものでもスタンスを示すものでもなく、単なる一個人の趣味の活動から産まれた記述です。

JScriptって知ってます?

知ってますよね? 知らない方はこちらの記事をご覧ください。

はい、この記事上で紹介した記事「JScript 覚書」の続編です。

初回は「JScript とは何か」、二回目の記事では「JScript で Windows の標準入力・標準出力・標準エラー出力を利用する方法」を紹介してまいりました。

今回は「JScript で コンピューターのファイル システムへのアクセス(*1)をする方法」を紹介しようと思います。

*1: 本記事では、ディレクトリの操作(作成、コピー、削除、名前の変更)方法に関し紹介します。

操作方法の概略

JScript は CreateObject と言う関数を用いて Microsoft ActiveX Data Objects (ADO) オブジェクト等を生成し、生成したオブジェクトが持つ各機能を利用することが可能です。

今回紹介するディレクトリやファイルの操作機能は、Windows OS が提供する FileSystemObject オブジェクトが持っていますので、CreateObject でこのオブジェクトを生成することで実現可能です。

FileSystemObject オブジェクトが持っている機能と、機能を実現するメソッドにどんなものがあるかに関する情報が Microsoft さんの Web ページにまとめられています。

詳しくはそちらを参照願います。

ディレクトリの操作例

まずは基本編。新規のディレクトリを一つ作成するコードを書きてみます。

以下の例は C ドライブ直下に sample01 と言うディレクトリを新規に作成するコードになります。

create_directory.js

// FileSystemObject オブジェクトを生成する
var oFS = WScript.CreateObject("Scripting.FileSystemObject");

// ディレクトリを新規作成する
oFS.CreateFolder("c:\\sample01");

作成したディレクトリをコピーしてみましょう
コピー先はやはり C ドライブ直下とし、コピー先にディレクトリ名 sample02 でコピーする場合のコードは以下のようになります。

copy_directory.js

// FileSystemObject オブジェクトを生成する
var oFS = WScript.CreateObject("Scripting.FileSystemObject");

// ディレクトリをコピーする
// コピーではなく移動させたい場合は MoveFolder メソッドを利用する
oFS.CopyFolder("c:\\sample01","c:\\sample02");

先ほど作成したディレクトリ sample01 を削除してみましょう

delete_directory.js

// FileSystemObject オブジェクトを生成する
var oFS = WScript.CreateObject("Scripting.FileSystemObject");

// 既存ディレクトリを削除する
oFS.DeleteFolder("c:\\sample01");

残ったディレクトリ sample02 の名前を sample03 に変更してみましょう。

change_directory_name.js

// FileSystemObject オブジェクトを生成する
var oFS = WScript.CreateObject("Scripting.FileSystemObject");

// 名前を変更したいディレクトリをオブジェクト化する
var oDir = oFS.GetFolder("c:\\sample02");

// ディレクトリ名を変更する
oDir.Name = "sample03";

うまく動きましたでしょうか?

ディレクトリに関して言えば、FileSystemObject の別メソッドを利用してディレクトリ内に存在するサブディレクトリやファイルの名前を得ること等も可能です。

ファイル操作に関しても、ディレクトリとほぼ同様のやり方で操作可能なメソッドが FileSystemObject の中に用意されています。

※ ファイルの中身の操作(テキストファイル内のデータの編集等)は、また別の話ですが…

詳しくは、先にも書きましたMicrosoft さんの Web ページをご覧ください。

では、また。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?