「Microsoft Office Access」では新しいデータベースを作成しようとした時、既に「db1.mdb」が存在すると「db2.mdb」といった具合に数字部分がインクリメントされてファイル名の部分に入ってきます。これと、同じことをしたいのですが、
このように、ダイアログが開く前に、アプリケーションが最後に使用したデディレクトリを見に行くことは可能でしょうか?
開発環境は何ですか?
SaveFileDialogという事は…VB.NETで良いのかな。
> アプリケーションが最後に使用したデディレクトリ
カレント ディレクトリの位置を調べた後、
そのディレクトリの内容を調べればよろしいかと。
たとえば VB.NET 2003 ならば、
Dim D As String = System.IO.Directory.GetCurrentDirectory()
For Each F As System.IO.FileInfo In New System.IO.DirectoryInfo(D).GetFiles("*.mdb")
MessageBox.Show(F.Name)
Next
とか。
魔界の仮面弁士様、ご回答頂き有難うございます。環境はVB.NET 2003です。
早速、試してみましたが、上手くいきませんでした。
System.IO.Directory.GetCurrentDirectory()の部分が、Application.StartupPathと同じになってしまい、実行ファイルが置いてある「C:\....\bin」を示しているようです。
カレントパスの初期値はApplication.StartupPathだらか
うまく言ってるんじゃないの?
説明が上手く出来なくてすみません。
SaveFileDialogは、「前回保存動作をしたディレクトリ」をどこかに記憶させているようでして、Application.StartupPathとは関係ないディレクトリが開きます。マイドキュメントやデスクトップなどです。
この「前回保存したディレクトリ」の記録は、どうやら、各アプリケーション毎に分けられて記録されているようです。これが、どこに記憶されているのかが分かれば解決するのかもしれませんが、分からないのです。
> どこに記憶されているのかが分かれば
それが分からなくても、InitialDirectory に『カレントディレクトリ』を
渡してから開くようにすれば、目的は果たせませんか?
簡単な方法〜
ファイルを開いたら、そのパスをテキストファイルに出力しておく
次回開く時にそのファイルからパス情報を拾えばオケ
ああーっ!!!その手がありましたね!(^^)!
パスをテキストファイルに出力しておく方法で実現できますね。
親切にご意見下さいました皆様、本当に有難うございました。
感謝感謝です。m(_ _)m
ツイート | ![]() |