• ベストアンサー

カレントディレクトリについて

MS-DOSの頃、Basicプログラミングではカレントディレクトリというのが重要・便利でした。 さて、現在のWindowsのVBプログラムでは、このカレントディレクトリはどの様に扱えば良いのでしょう? MS-DOSの時と同じ扱いで良いとか、全く考えない方が良いとか、こんな場合は考慮すると便利ですよとか。 色々意見を聞かせて下さい。

  • tng
  • お礼率95% (47/49)

質問者が選んだベストアンサー

  • ベストアンサー
  • honiyon
  • ベストアンサー率37% (331/872)
回答No.4

こんにちは、honiyonです。   本題とは少し離れてしまいますが、カレントのうまい使い方について...   カレントディレクトリを用いたファイル指定は、そのファイルの居場所を明確に指定出来ない反面、明確に指定出来ないからこそ、汎用的に使える一面があります。   例えば、ユーザーがインストールディレクトリ名が気に食わないからとディレクトリ名を変更してしまってもカレントを用いたファイル指定をしていればアプリケーションが正常に動作します。   また、おかしな応用ですが、ショートカットアイコンの作業フォルダの指定を変更すれば、本体とデータを別々のディレクトリで取り扱うなんていう事も可能です。   しかし、アプリケーションの動作途中でいきなりカレントを変更されてしまっては動作が不安定になる要因になります。 起動直後に現在のカレントのフルパスを取得し、内部に保持しておいて、ファイルを指定する際に、その保持しておいたカレントのフルパスを用いて、ファイルをフルパス指定する対策をとった方が良いでしょう。  まとめると、   1.起動時にカレントのフルパスを取得する。(Ex.c:\hoge\)   2.カレントのファイルを指定する場合は、「foo.txt」ではなく、1で取得したフルパスを使って「c:\hoge\foo.txt」と指定。  って感じです。   参考になれば幸いです(..

tng
質問者

お礼

ありがとうございます。「本題とは少し離れて」とありますが、いえいえ、こういう話が聞きたいのです。なる程と思う反面、MS-DOSでのカレントディレクトリのありがたさは、Windowsではあまり発揮できないという感じでしょうか。

その他の回答 (3)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3

debug.print app.path でアプリでアプリケーションパスは取れます chdrive chdir curdrive curdir などを調べましょう。

tng
質問者

お礼

前回に引き続きありがとうございます。早速調べてみます。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 私も、カレントディレクトリの有効な利用法はあまりわかりません。 利点を挙げれば、KillやFileCopyステートメントなどで、カレントディレクトリにあるファイルを操作する場合に、フルパスを指定しなくてもよいというところでしょうか。 したがって、特定の場所のファイルにたいしてたくさんのファイル操作を行う場合は便利でしょうか。 ただし、コード上では現在のカレントディレクトリがわからないので、私ならカレントディレクトリ部分の文字列を定数化して使用します。 だいたいの場合、ファイル操作などは基本的にフルパスで指定するので、やっぱりカレントディレクトリなんてほとんど使わないですね。 私も誰かにカレントディレクトリの有効利用法を教えて欲しいです。 では。

tng
質問者

お礼

ありがとうございます。やはりVBではフルパス指定が基本の様な気がします。でもせっかくだからカレントディレクトリの有効利用法、知りたいですね。

  • honiyon
  • ベストアンサー率37% (331/872)
回答No.1

こんちには、honiyonです。   VBに限らず、Windowsアプリケーションのカレントは、デフォルトではアプリケーションの実行ファイルがあるでディレクトリとなります。     但し、ショートカットアイコンのプロパティ等で「作業フォルダ」というものが設定出来ます。これを設定すると、そのフォルダがカレントとなるようです。  参考になれば幸いです(..

tng
質問者

お礼

ありがとうございます。ショートカットアイコンのプロパティでの「作業フォルダ」設定は、早速やってみます。とはいえ、だから何なんだと言われると困りますが。

関連するQ&A

  • Windows 7でのカレントディレクトリについて

    エクスプローラからPerlを起動する際のカレントディレクトリが、Windows 7 (x64) と Windows XPで違ってしまいます。 Windows XPの場合は起動した.plファイルの場所がカレントディレクトリとなり、特に問題はないのですが、Windows7の場合 C:\Windows\System32 がカレントディレクトリになってしまうようです。 以下の前提条件で、Windows 7 でも XPと同様の動作を実現する方法はないでしょうか。 [起動方法] .plファイルを右クリック ⇒「プログラムから開く」⇒ Perl Command Line Interpriter (既定のプログラムはメモ帳に設定) [環境] Windows (7 x64 or XP) + ActivePerl 5.14.2

    • ベストアンサー
    • Perl
  • C#でカレントディレクトリ以下のディレクトリを検索方法

    C#でカレント以下のディレクトリ内のファイルを抽出して、リストボックスに表示させるプログラムを書きたいのですが、良いサンプルはありますか? VBからの転向で構文を理解していないので、これを雛形にしてC#を覚えていきたいです。

  • カレントディレクトリ・・・って?

    こんにちは。ネットで検索したのですが知識が無いためさっぱりわからないので質問させていただきます。 今度、中古ノートPCを入手するに当たり、メーカーのHPからアップデートできるものをダウンロードしました。 「BIOSのアップデート」を解凍したところ、セットアップFDを作り、 しかも、その作業をMS-DOS日本語モードでしなければならず悪戦苦闘しています。 自分のPCが日本語モードになっている事はわかりましたので、FDをフォーマットするまでは出来ました。 次の手順が 「アップデートFD作成ツールを実行します。解凍したファイルがあるカレントディレクトリで実行してください」 っと書いてあり、 解凍されて出来たアプリケーション「~.exe」を実行するようなのですが、その部分がさっぱりわかりません。 ネットでカレントディレクトリなどを検索しまくったのですが、解決できませんでした。 それを入力すると 「ドライブAにフォーマットされたFDをセットして下さい。よろしいですか(Y/N) ?」っと表示されるようなのですが・・・。 現在はMS-DOSプロンプトを開くと「C:¥WINDOWS>」っとなっており、 そのままファイル名を入力し実行すると「コマンドまたはファイル名が違います」っと出ます。 アップデートファイルはデスクトップのフォルダにあります。 わたしのPCはVAIO PCV-R60でOSはWindows98です。 どなたかアドバイスよろしくお願いいたします。

  • コマンドプロンプトでのカレントディレクトリについて。

    WinXPでコマンドプロンプトを使っているんですが、カレントディレクトリを移動する時、cd c:\Program Files ってやりますよね。 Dドライブのlibというフォルダにカレントディレクトリを移したいんですが、cd D:\libとしても、なんの応答もなく元のプロンプト画面のままです。 Dドライブにカレントディレクトリを移動させるというのは、そもそも出来ないものなんですか? 誰か知っている人がいたら教えて下さい。宜しくお願いします。

  • シェルスクリプト内のcdで、カレントディレクトリを変えるには?

    シェルスクリプト内のcdコマンドで、カレントディレクトリを変えるにはどうしたらいいか?をどうか教えて下さい。 MS-DOSのバッチファイル内で"cd XXXXX"と書き実行した時の動作を、UNIX(CygWin)環境でも行いたいです。 が、シェルスクリプトは(サブシェルで動く為)カレントディレクトリが変わってくれません。aliasコマンド等でいろいろ実験しましたが、DOSバッチファイルのように「バッチファイル単体でディレクトリ移動が出来る方法」を探し出せませんでした。 極めて初歩的とは存じますが、どうか宜しくお願い致します。

  • Javaでカレントディレクトリを移動するには?

    Javaの中で、カレントなディレクトリを移動させ、相対PATHで既存ディレクトリを認識させたいのですが、期待する結果が得られません。 Javaの中でカレントディレクトリを移動する場合、System.setProperty()メソッドを利用して、"user.dir"を書き換えれば良いと思ったのですが、間違いでしょうか? 間違いである場合、Javaの中ディレクトリを移動させる方法はあるのでしょうか? 以下のプログラムは、下記状況下にて実行したものです。 C:\Java |-app ←プログラムを実行時にいるフォルダ |-sub ←相対PATHで認識させたい既存フォルダ ----------- ソース -------------------------- import java.io.*; class TestTest { public static void main(String args[]) { System.out.println("Current dir : " + System.getProperty("user.dir")); System.out.println("Move Dir !"); System.setProperty("user.dir","C:\\Java"); System.out.println("Current dir : " + System.getProperty("user.dir")); File f = new File("sub"); System.out.println("Dir existance : " + f.exists()); } } --------------------------------------------- ----------------実行結果---------------------- C:\Java\app>java TestTest Current dir : C:\Java\app Move Dir ! Current dir : C:\Java Dir existance : false ←trueにならない! --------------------------------------------

    • ベストアンサー
    • Java
  • VBSでコマンドプロンプトのカレントディレクトリを操作できますか?

    どうにも行き詰まってしまったので質問させてください。 Windows2000なんですけど、コマンドプロンプトを開くと C:\Documents and Settings\Administrator> となっています。 cd c:\xxx\yyyと入力するとカレントディレクトリを変更することが出来ますが、VBSで同じようにしたい場合は、どのように書いたらいいのでしょうか?

  • VB 動画再生する際にカレントディレクトリを指定して再生

    私は今、あるアプリケーションを作っているのですが、オープニングムービーを再生したいと思っております。 開発環境:Visual studio 2008 言語:VB 現在はサイト等で検索し、 Private Declare Ansi Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer Const stCurrentDir As String = CurDir$() Const FileName As String = stCurrentDir & """\openning.mpg""" という感じでファイルの場所を指定しているのですが、どうもconstがネックです。 これをdimで指定すると再生されないのです。 だからと言ってconstでやると、普通にカレントディレクトリを指定せずすべて指定するとできるのですが、上のようにカレントディレクトリを求めると、定数式が必要と出てしまいます。 どうにかうまくいく方法等ありませんでしょうか? よろしくお願いいたします!

  • セットアップ先のディレクトリの設定方法を教えてください。

    ディストリビューションウィザードを使って配布用のセットアッププログラムを作成したのですが、セットアップするときにセットアップ先のディレクトリがC:Program Files\Project1\ となってしまいます。今まではProject1の部分がプログラム名になっていたので、自動的にプロジェクトファイルの名前が付くとばっかり思っていました。ところが今日はなぜかProject1となってしまいます。このディレクトリの名前を変える設定方法はありますか。当然セットアップの時には変えられるのですが、初期値を設定したいと思っております。よろしくお願いします。 Windows XPとVB6.0(SP6) を使用しております。

  • <EXCEL2007 VB(VBA) カレントフォルダの変更方法>

    <EXCEL2007 VB(VBA) カレントフォルダの変更方法> VBからプログラムで用途に合わせてEXCELの読み出し、保存のフォルダ位置をコントロールしようとしています。 ファイルの読み出し、保存指定の時に希望のカレントフォルダを開けるように、プログラムでCHDIRやチェンジドライブを指定してから「GetOpen」「GetSaveAs」を実行しても、カレントフォルダはマイドキュメントから変わりません。 「EXCELのオプション-保存-規定のファイルの場所」では、固定化されてしまうので利用出来ません。 EXCEL2007では方法が変わったのでしょうか? 検索しても中々、トピックスに出会わないので思い切って質問に出してみました。 わかる方いましたらよろしくお願いします。

専門家に質問してみよう