
本日、初めてjavascriptにチャレンジしました。
カレントフォルダについて、わからないため教えてください。
■D:/data/にtest.html,test.jsを作成
■test.html内にtest.jsを組み込み
■test.jsに下記を記載
var fso = new ActiveXObject("Scripting.FileSystemObject");
var myFolder = fso.GetFolder(".");
var myFiles = new Enumerator(myFolder.Files);
while(!myFiles.atEnd()){
document.write(myFiles.item());
myFiles.moveNext();
}
D:/data/内のファイル一覧を表示させたかったのですが、
結果は、デスクトップのファイル一覧が表示されました。
fso.GetFolder(".")でカレントフォルダを指定していますが、
この定義はどうなっているのでしょうか?
不慣れなため、質問の仕方も簡潔でなくすみません。
宜しくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
> → htmlファイルはローカル上のファイルで、IE6でファイルオープンしています。
IIS等のHTTPサーバ(?)は動作していません。よく調べてみると、ブラウザの実行ファイルのパスがカレントになる
ようですね。
(IEの場合はなぜか %ProgramFiles%\Internet Explorer\iexplore.exe
ではなくデスクトップになるようです)
こちらでテストしたのがたまたま偶然、IEではないIEコンポブラウザで
実行ファイルのある場所にテストファイル作っていたため気がつか
なかったようです。
すみません。
これはJScript側の仕様と見るしかないと思います。
スクリプトファイルのあるディレクトリを取得する方法がないかと
調べてみたのですが、ないようですね。
(WScriptオブジェクトにScriptFullNameというのがあるようなのですが
WScriptオブジェクトを取得する方法が分からない...)
パスが固定なら直書きするしかないでしょうね。
パスが固定でない場合はそのたび書き換えるとかかな。
pick52さん
ご回答、ありがとうございます。
おかげさまで、カレントパスがデスクトップになる理由がわかりました。
スクリプトファイルのあるディレクトリを取得する方法については、
私も引き続き検討したいと思います。
ありがとうございました。
No.2
- 回答日時:
No1です。
あれからよく考えてみたらサーバ経由で見ているならこの結果は当然でした。
Scripting.FileSystemObjectはローカルのファイルを操作するもの
なのでそのスクリプトを呼び出しているHTMLがローカル上になければ
期待した通りの動作はしません。
http://localhost/test.html
↓
ローカルのカレントディレクトリは不明(環境によって異なる可能性も)
C:\Documents and Settings\hogehoge\My Documents\test.html
↓
C:\Documents and Settings\hogehoge\My Documents がカレント
ディレクトリ
もし、サーバのディレクトリにあるファイル一覧を取得したいので
あれば、JavaScriptなどのクライアントサイドスクリプティング技術
では不可能なのでCGIやPHPなどのサーバサイドスクリプティング技術を
使用してください。
pick52さん
アドバイスをいただきまして、ありがとうございます。
>正確にはJavaScriptではなくJScriptでは?
→ 知識不足ですみません。参考URLで確認させていただきました。
>組み込みというのはscriptタグで外部読み込みしているということ
>でしょうか。
→ はい。そのとおりです。
>var fso = new ActiveXObject('Scripting.FileSystemObject');
>var myFolder = fso.GetFolder('.');
>alert(myFolder.path);
>
>として調べてみてください。
→ デスクトップのパスが表示されました。
>Scripting.FileSystemObjectはローカルのファイルを操作するもの
>なのでそのスクリプトを呼び出しているHTMLがローカル上になければ
>期待した通りの動作はしません。
→ htmlファイルはローカル上のファイルで、IE6でファイルオープンしています。IIS等のHTTPサーバ(?)は動作していません。
No.1
- 回答日時:
まず、これはScripting.FileSystemObjectなどを使用しているので
正確にはJavaScriptではなくJScriptでは?
また、Windows版IE以外で動作するかどうかも分かりません。
(JavaScriptとJScriptの違いなどは参考URLを見たり自分で調べて
ください)
組み込みというのはscriptタグで外部読み込みしているということ
でしょうか。
こちらでローカルにて試した限りでは正常にカレントディレクトリが
表示されましたが...。
環境などが書いてありませんがもしかするとカレントディレクトリが
デスクトップになっているのでは。
IISなどのサーバを使用している場合は可能性があります。
(IISはデフォルトのカレントディレクトリが実行したファイルの
ディレクトリにならないことが多い)
var fso = new ActiveXObject('Scripting.FileSystemObject');
var myFolder = fso.GetFolder('.');
alert(myFolder.path);
として調べてみてください。
カレントディレクトリは
var objWshShell = new ActiveXObject("WScript.Shell");
objWshShell.CurrentDirectory = 'ディレクトリ';
で変更できます。
参考URL:http://d.hatena.ne.jp/keyword/JScript,http://ja. …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ASP上からサーバサイドのVBScr...
-
クリックカウンターの挙動がお...
-
C#の質問です。
-
Webページ中の javascript をVB...
-
指定した日時にリロード処理を...
-
禁止文字チェック
-
Excel VBAで、ワークシート関数...
-
Java Script を.jsファイルを利...
-
ASPでエクセルの起動
-
”吴”とはなんですか?
-
if(1){...}とはどういうことで...
-
正規表現について
-
JSPの処理の途中で、JavaScript...
-
「終了していない文字列型の定...
-
エクセルのVBAでオブジェクトの...
-
正整数の半角数字かどうか判定する
-
Ajax以外で、JavaScriptからPHP...
-
VB.netでタイマーがスタートし...
-
【教えて下さい】正規表現クイズ
-
jspで、javaを呼び出すときの引...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Illustrator でjavascriptによ...
-
JavaScriptでテキス...
-
JavaScriptによる....
-
ActiveXObjectについて
-
ブラウザからエクセルを開く方法
-
画像入替JavaScriptが動かない
-
jsでルートディレクトリより上...
-
javascriptでテキストファイル...
-
Ajaxが動きません~『status=0』?
-
JavaScriptでファイルの保存
-
星型評価スターレーティングの...
-
XMLHttpRequest 外部ソースの取得
-
誰か知ってますか?
-
JQuery+JSONでChromeでローカル...
-
nodeでJavaScriptの標準入力
-
XMLHttpRequestオブジェクトに...
-
ローカルのtest.txtを1行ずつ...
-
PowerPointで時計表示
-
JSPの処理の途中で、JavaScript...
-
VB.NET2003 テキストボックスに...
おすすめ情報