
本日、初めて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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) Excel VBAについて、 フォルダ内のファイルを全て開きたい場合、 FSOを使えば、Dirは使わ 1 2023/01/27 13:18
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- HTML・CSS HTMLを正しく表示させるには 2 2023/06/18 09:12
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptでのmdb接続について
-
JQuery+JSONでChromeでローカル...
-
JavaScriptでテキス...
-
node.jsでmysqlをローカル環境...
-
ブラウザからエクセルを開く方法
-
フレームで開いたページのリン...
-
JSPの処理の途中で、JavaScript...
-
csvファイルを読み込み、該当項...
-
JavaScriptでショートカットキ...
-
JavaScriptを使用して、クライ...
-
以下のコードを実行しても、オ...
-
外部ファイルからの値の取得
-
VBA SORT Applyでエラー
-
Win版IllustratorCS3でJavascri...
-
エディタ機能のTEXTAREAを作りたい
-
漢字などを正規表現でパターン...
-
HTAで,親ウインドウを閉じ...
-
初心者です。gulpでコンパイル...
-
〔Excel:VBA〕マクロの実行が異...
-
DOMで追加した要素が「前に戻る...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaScriptでテキス...
-
Ajaxが動きません~『status=0』?
-
ブラウザからエクセルを開く方法
-
ブックマークレットが動かない。
-
ASP上からサーバサイドのVBScr...
-
jsでルートディレクトリより上...
-
html組込み時のカレントフォル...
-
ajax 通信 iisの設定?
-
ActiveXObjectについて
-
javascriptでテキストファイル...
-
nodeでJavaScriptの標準入力
-
javascriptでサーバ上のActives...
-
XMLHttpRequest 外部ソースの取得
-
ローカルのtest.txtを1行ずつ...
-
ブラウザ上でjavascriptを編集...
-
javascriptでのmdb接続について
-
JavaScriptでファイルの保存
-
JQuery+JSONでChromeでローカル...
-
JavaScriptを使ってファイルの...
-
ローカル環境で動作しないJavaS...
おすすめ情報