次の方法で共有


ディレクトリの復元って?

質問

2009年6月10日水曜日 6:45

実教出版の「30時間でマスターVisualBasic .NET&Express」の121ページのプログラムリストに、

********
 Dim sfd As New SaveFileDialog

  ・
 ・
 ・

 sfd.RestoreDirectory = True ←この行についてなんですが。
********

この行の説明として「現在のディレクトリを復元する」と書いてあるのですが、
この「復元する」とはどういった意味なんでしょうか?

もし、質問の意味がわからない方はプログラムリストをすべて載せますので、
是非とも教えてください。

(ちなみにVisualStudio2008にてやったところ、何も変化はありませんでした)

すべての返信 (5)

2009年6月10日水曜日 7:11 ✅回答済み

MSDN にはあたりましたか?

 FileDialog.RestoreDirectory プロパティ (System.Windows.Forms)
 http://msdn.microsoft.com/ja-jp/library/system.windows.forms.filedialog.restoredirectory.aspx

本当に変化はなかったのでしょうか?
ダイアログの中でディレクトリを移動すると、このフラグの有無で変化があるはずですが。


2009年6月10日水曜日 14:51 ✅回答済み

カレントディレクトリ(もしくはカレントフォルダ)は、相対パス指定(.\aaa\bbbとか..\.\aaaとか)の時、あるいはファイル名だけの時に基準となるディレクトリ(フォルダ)です。

ファイルを開くダイアログ、名前をつけてファイルの保存ダイアログでは、このカレントディレクトリの位置を勝手に変更します。
カレントディレクトリが変化することを想定できていないと、後々にアプリがうまく動かないと行ったことを引き起こします。

このため、これらのダイアログを開く前のカレントディレクトリを覚えておき、ダイアログが閉じた後にカレントディレクトリをダイアログを開く前の状態に戻す(復元する)動作を入れることができる仕組みが用意されています。
RestoreDirectoryがtrueの時はこの仕組みが働きます。

解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。


2009年6月10日水曜日 7:14

訳しすぎて難解になる典型ですね。
「現在のディレクトリ」は要するに「カレントディレクトリ」です。相対パスの基準となるパス。


2009年6月12日金曜日 11:59

みなさんご回答ありがとうございます。

あと、さらに聞きたいのですが

XPでカレントディレクトリを調べたら
RestoreDirectoryがTrueの時とFalseの場合で
説明のとおりの結果になったのですが、

VistaでやるとFalseの場合でもダイアログを開く前のカレントディレクトリままでした。。。

何度も申し訳ございません。


2009年6月12日金曜日 15:03

VistaのSP1か、.NET Framework 3.5以降が入っている環境でしょうか?
新しいコモンダイアログの仕様になっているので、プロパティの効果がないのかもしれませんね。解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。