JavaScript_javascript スキルで ActiveXObject を使用してローカル フォルダーを操作する方法

WBOY
リリース: 2016-05-16 16:54:00
オリジナル
899 人が閲覧しました

Windows プラットフォームでは、js は Windows が提供する多くの ActivexObject を呼び出すことができます。この記事では、js を使用してドキュメント処理を実装し、js を使用して ActiveX を記述する方法について簡単に説明します。

コードをコピー コードは次のとおりです:




新しいドキュメント








JavaScript の ActiveXObject オブジェクトは、Automation オブジェクトへの参照を有効にして返します。使用方法:

newObj = new ActiveXObject(サーバー名.タイプ名[, 場所])

ActiveXObject オブジェクトの構文には次の部分があります: newObj が必要です。 ActiveXObject として割り当てられる変数の名前。
サーバー名は必須です。このオブジェクトを提供したアプリケーションの名前。
タイプ名は必須です。作成するオブジェクトのタイプまたはクラス。
場所はオプションです。このオブジェクトを作成したネットワーク サーバーの名前。

覚えておいてください: ActiveX は Microsoft 製品であるため、これは IE でのみサポートされます。

JavaScript で ActiveXObject を使用して FileSystemObject 操作ファイルを作成します

1. 関数実装コア: FileSystemObject オブジェクト

JavaScript でファイル操作関数を実装するには、主に FileSystemobject オブジェクトに依存します。

2. ファイルシステムオブジェクトのプログラミング

FileSystemObject オブジェクトを使用したプログラミングは非常に簡単です。通常、FileSystemObject オブジェクトを作成し、関連メソッドを適用し、オブジェクト関連のプロパティにアクセスする必要があります。

(1) FileSystemObject オブジェクトを作成します

FileSystemObject オブジェクトを作成するコードは 1 行だけです:
var fso = new ActiveXObject("Scripting.FileSystemObject");
上記のコードが実行されると、fso は FileSystemObject オブジェクト インスタンスになります。

(2) 申請関連の方法

オブジェクト インスタンスを作成した後、オブジェクトの関連メソッドを使用できるようになります。たとえば、CreateTextFile メソッドを使用してテキスト ファイルを作成します。
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f1 = fso.createtextfile("c:\myjstest.txt",true") );
(3) オブジェクト関連の属性へのアクセス
オブジェクト関連の属性にアクセスするには、まずオブジェクトへのハンドルを確立する必要があります。これは get 一連のメソッドを通じて実現されます。 GetDrive はドライブ情報の取得を担当します。 , GetFolder はフォルダー情報の取得を担当し、GetFile はファイル情報の取得を担当します。たとえば、次のコードを指定すると、f1 はファイル c:test.txt を指すハンドルになります:
var fso = new ActiveXObject(" Scripting.FileSystemObject");
var f1 = fso.GetFile("c:\myjstest.txt");
次に、f1 を使用してオブジェクトの関連プロパティにアクセスします。例:

コードをコピー コードは次のとおりです。

var fso = new ActiveXObject("Scripting. FileSystemObject") ;
var f1 = fso.GetFile("c:\myjstest.txt");
alert("ファイルの最終更新日: " f1.DateLastModified);

上記の最後の文を実行すると、c:myjstest.txt の最終更新日属性値が表示されます。
ただし、1 つ注意してください。create メソッドを使用して作成されたオブジェクトの場合、オブジェクト ハンドルを取得するために get メソッドを使用する必要はなくなりました。この場合、create メソッドで作成されたハンドル名を直接使用できます。

コードをコピー コードは次のとおりです。

var fso = new ActiveXObject("Scripting. FileSystemObject") ;
var f1 = fso.createtextfile("c:\myjstest.txt",true");
alert("ファイルの最終更新日: " f1.DateLastModified);

3. ドライブの操作

FileSystemObject オブジェクトを使用すると、フォルダーのコピー、移動、フォルダー情報の取得など、Windows ファイル ブラウザーでファイルを操作するのと同じように、プログラムでドライブやフォルダーを操作することが簡単になります。
(1) ドライブ オブジェクトの属性
ドライブ オブジェクトは、システム内の物理または論理ドライブのリソース コンテンツを収集する役割を果たします。
l TotalSize: バイト単位で計算されたドライブ サイズ。
l AvailableSpace または FreeSpace: バイト単位で計算されたドライブの利用可能なスペース。
l DriveLetter: ドライブ文字。
l DriveType: ドライブのタイプ、値は次のとおりです: リムーバブル (リムーバブル メディア)、固定 (固定メディア)、ネットワーク (ネットワーク リソース)、CD-ROM または RAM ディスク。
l SerialNumber: ドライブのシリアル番号。
l ファイルシステム: ドライブのファイル システム タイプ。値は FAT、FAT32、NTFS です。
l IsReady: ドライブが使用可能かどうか。
l ShareName: 共有名。
l VolumeName: ボリューム ラベル名。
l パスとルートフォルダー: ドライブのパスまたはルート ディレクトリ名。

(2) ドライブオブジェクト操作ルーチン

次のルーチンは、ドライブ C のボリューム ラベル、総容量、空き容量などの情報を表示します。

コードをコピーしますコードは次のとおりです。

var fso, drv, s ="";
fso = new ActiveXObject("Scripting.FileSystemObject");
drv = fso.GetDrive(fso .GetDriveName("c :\"));
s = "ドライブ C:" " – ";
s = drv.VolumeName "n";
s = "合計容量: " drv.TotalSize / 1024;
s = " Kb" "n";
s = "空き領域: " drv.FreeSpace / 1024;
s = " Kb" "n";
アラート;

4. 操作フォルダー(フォルダー)

フォルダーに関連する操作には、関連属性の作成、移動、削除、取得が含まれます。
フォルダー オブジェクト操作ルーチン:
次のルーチンは、親フォルダーの名前の取得、フォルダーの作成、フォルダーの削除、ルート ディレクトリかどうかの判断などの操作を実行します。

コードをコピー コードは次のとおりです:

var fso, fldr, s = "" ;
// FileSystemObject オブジェクト インスタンスを作成します
fso = new ActiveXObject("Scripting.FileSystemObject");
// ドライブ オブジェクトを取得します
fldr = fso.GetFolder("c:\");
// 親ディレクトリの名前を表示します
alert("親フォルダ名は: " fldr "n");
// ドライブの名前を表示します
alert("Contained on drive " fldr.Drive "n");
// ルート ディレクトリかどうかを判断します
if (fldr.IsRootFolder)
alert("これはルート フォルダーです。");
else
alert("このフォルダーはルート フォルダーではありません。");
alert("nn");
// 新しいフォルダーを作成します
fso.CreateFolder ("C:\Bogus");
alert("作成されたフォルダー C: \Bogus" "n");
//パス名を除いたフォルダーのベース名を表示
alert("Basename = " fso.GetBaseName("c:\) bogus") "n");
// 作成したフォルダーを削除
fso.DeleteFolder("C:\Bogus");
alert("削除されたフォルダー C:\Bogus" "n");

5. 操作ファイル(ファイル)

ファイルに対する操作は、上で紹介したドライブやフォルダーの操作よりも複雑で、基本的にファイルの作成、コピー、移動、削除の操作と、コンテンツの作成、追加、削除、読み取りの操作に分かれます。操作。それぞれを以下で詳しく紹介します。
(1) ファイルを作成します
空のテキスト ファイルを作成するには 3 つの方法があります。この種のファイルはテキスト ストリームと呼ばれることがあります。
1 つ目は、CreateTextFile メソッドを使用することです。コードは次のとおりです:

コードをコピー コードは次のとおりです:

var fso, f1;
fso = new ActiveXObject ("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\testfile.txt", true);

2 番目は、OpenTextFile メソッドを使用し、ForWriting 属性を追加します。ForWriting の値は 2 です。コードは次のとおりです:

コードをコピー コードは次のとおりです:

var fso, ts;
var ForWriting= 2 ;
fso = new ActiveXObject("Scripting.FileSystemObject");
ts = fso.OpenTextFile("c:\test.txt", ForWriting, true);

3 番目の方法は、OpenAsTextStream メソッドを使用し、ForWriting 属性も設定します。

コードをコピー コードは次のとおりです:

var fso, f1, ts;
var ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CreateTextFile ("c:\test1.txt");
f1 = fso.GetFile("c: \test1.txt");
ts = f1.OpenAsTextStream(ForWriting, true);

(2) ファイルにデータを追加します

ファイルの作成後、通常は「ファイルを開く→データを入力→ファイルを閉じる」という手順でファイルにデータを追加する必要があります。
ファイルを開くには、FileSystemObject オブジェクトの OpenTextFile メソッド、または File オブジェクトの OpenAsTextStream メソッドを使用します。
データを入力するには、TextStream オブジェクトの Write、WriteLine、または WriteBlankLines メソッドを使用します。データを書き込むという同じ機能において、これら 3 つのメソッドの違いは、Write メソッドは書き込まれたデータの最後に新しい改行を追加しないこと、WriteLine メソッドは最後に新しい改行を追加すること、および WriteBlankLines は最後に新しい改行を追加することです。またはそれ以上の空白でもOKです。
ファイルを閉じるには、TextStream オブジェクトの Close メソッドを使用できます。

(3) ファイル作成とデータ追加のルーチン

次のコードは、ファイルの作成、データの追加、ファイルを閉じる手順を組み合わせたものです:

コードをコピー コードは次のとおりです:

var fso, tf;
fso = new ActiveXObject ("Scripting.FileSystemObject");
// 新しいファイルを作成します
tf = fso.CreateTextFile("c:\testfile.txt", true);
// データを入力します改行文字を追加します
tf.WriteLine("Testing 1, 2, 3.") ;
// 空白行を 3 行追加します
tf.WriteBlankLines(3) ;
// 1 行を入力します改行なし
tf.Write ("This is a test.");
//ファイルを閉じる
tf.Close();

(4) ファイルの内容を読み取る

テキスト ファイルからデータを読み取るには、TextStream オブジェクトの Read、ReadLine、または ReadAll メソッドを使用します。 Read メソッドはファイル内の指定された数の文字を読み取るために使用され、ReadLine メソッドは改行を除く行全体を読み取り、ReadAll メソッドはテキスト ファイルの内容全体を読み取ります。読み取った内容は文字列変数に格納され、表示や分析が可能になります。 Read または ReadLine メソッドを使用してファイルのコンテンツを読み取るときに、一部の部分をスキップしたい場合は、Skip または SkipLine メソッドを使用する必要があります。
次のコードは、ファイルを開いてデータを入力し、データを読み取る方法を示しています。

コードをコピー コードは次のとおりです。

var fso, f1, ts, s;
var ForReading = 1;
fso = new ActiveXObject("Scripting.FileSystemObject");
// ファイルを作成します
f1 = fso.CreateTextFile("c:\testfile.txt", true) ;
// データ行を入力します
f1.WriteLine("Hello World");
f1.WriteBlankLines(1);
// ファイルを閉じます
f1.Close( );
// ファイルを開きます
ts = fso.OpenTextFile("c:\testfile.txt", ForReading);
// ファイルの 1 行を文字列に読み取ります
s = ts.ReadLine();
// 文字列情報を表示
alert("File content = '" s "'");
// ファイルを閉じる
ts.Close();

(5) ファイルの移動、コピー、削除

上記の 3 つのファイル操作について、JavaScript には 2 つの対応するメソッドがあります。File.Move または FileSystemObject.MoveFile はファイルの移動に使用され、File.Copy または FileSystemObject.CopyFile はファイルのコピーに使用されます。ファイルを削除するには。
次のコードは、ドライブ C のルート ディレクトリにテキスト ファイルを作成し、内容を入力し、そのファイルを tmp ディレクトリに移動し、temp ディレクトリの下にファイルのコピーを作成し、最後にこれら 2 つのファイルを削除する方法を示しています。ディレクトリ:

コードをコピーします コードは次のとおりです:

var fso, f1, f2 , s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\testfile.txt", true);
// 行を書き込みます
f1.Write("This is a test.");
// ファイルを閉じます
f1.Close();
// C: ルート ディレクトリのファイル ハンドルを取得します
f2 = fso.GetFile("c:\ testfile.txt");
// ファイルを mp ディレクトリに移動
f2.Move ("c:\tmp\testfile.txt");
//ファイルを emp ディレクトリにコピーします
f2.Copy ("c:\temp\testfile.txt");
// ファイル ハンドルを取得します
f2 = fso.GetFile("c:\tmp\ testfile.txt");
f3 = fso.GetFile("c:\temp\testfile.txt");
//ファイルを削除
f2.Delete();
f3.Delete( );

6.結論

上記の FileSystemObject のさまざまなオブジェクト、プロパティ、メソッドの紹介と例を通じて、JavaScript 言語を使用してページ上のドライブ、ファイル、フォルダーを操作する方法を明確に理解できたと思います。ただし、上記の手順は非常に単純ですが、JavaScript ファイル操作技術を完全かつ柔軟に習得するには、多くの実践的な演習が必要です。もう 1 つ注意していただきたいのは、ブラウザでのファイルの読み取りや書き込みなどの高度な操作が含まれるため、ブラウザのデフォルトのセキュリティ レベルでは、コードを実行する前に情報プロンプトが表示されることです。これを実際の環境で確認してください。訪問者に注意を促す。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!