§12 ファイル処理(2)4 プログラミング実習
 back next 

【6】 カレントディレクトリ

 ファイル操作の対象となっているディレクトリ(フォルダ)のことをカレントディレクトリという。プログラム起動時は、プログラムが保存されているフォルダがカレントディレクトリとなる。ファイルのダイアログでファイルの場所(フォルダ)を変更すると、その場所がカレントディレクトリとなる。
 ここでは、問題点を改善するための処理を追加していく。
 まず、ディレクトリに関するメソッドとプロパティをまとめておく。

My.Application.Info.DirectoryPath プロパティ
 アプリケーションが保存されているディレクトリ(フォルダ)を取得する。
IO.Directory.SetCurrentDirectory(パス名) メソッド
 カレントディレクトリを パス名 に変更する。
IO.Directory.GetCurrentDirectory() メソッド
 カレントディレクトリを取得する。
FileDialog.InitialDirectory プロパティ
 ファイルダイアログ FileDialog オブジェクトのディレクトリの初期値を設定する。

操作 19 プログラム起動時にカレントディレクトリをプログラムが保存されているフォルダに設定する処理を追加する。また、ファイルのダイアログの初期ディレクトリも設定する。

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        hsbRed.Maximum = 255 + hsbRed.LargeChange - 1 '最大値の設定
             << 略 >>
        ColorDisp()
        IO.Directory.SetCurrentDirectory(My.Application.Info.DirectoryPath)
        OpenFileDialog1.InitialDirectory = IO.Directory.GetCurrentDirectory
        SaveFileDialog1.InitialDirectory = IO.Directory.GetCurrentDirectory
    End Sub

 カレントディレクトリはプログラムが保存されているフォルダになる。ファイルのダイアログの初期値もカレントディレクトリと同じになる。それぞれの設定は一度だけでよい。
 ファイルのダイアログでファイルの場所を変更するとカレントディレクトリも変更される。

操作 20 終了時に保存するファイルcolor.txtがプログラムと同じフォルダに保存されるように処理を追加する。

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        DataSave(My.Application.Info.DirectoryPath & "\color.txt")
    End Sub

結果 問題点が改善される。

 

【7】 ファイルの種類の設定

 色のデータファイルはcolor.txtのようにファイル名の末尾に「.txt」を付けている。これを拡張子という。ファイルの一覧に拡張子が.txtのファイル名だけを表示させることができる。
 ファイルのダイアログには、ファイル名の入力欄の下に「ファイルの種類」を選択する欄があり、ここに種類を設定する。設定はFilterプロパティにする。例えば、次のようにする。

OpenFileDialog1.Filter = "テキストファイル(*.txt)
(a1)
|*.txt
(a2)
|すべてのファイル(*.*)
(b1)
|*.*"
(b2)

 (a1),(b1)がファイルの種類に表示される部分である。(a2),(b2)がフィルタとして使われる。「*」はその部分がどのような文字列でもよいという指定である。
 画像ファイルには拡張子が複数ある。このようなときはフィルタをセミコロン(;)で区切る。次に例を示す(太字)。

OpenFileDialog1.Filter = "画像ファイル|*.bmp;*.gif;*.jpg|すべてのファイル|*.*"

操作 21 フィルタを設定する処理を追加する。

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        hsbRed.Maximum = 255 + hsbRed.LargeChange - 1 '最大値の設定
            << 略 >>
        SaveFileDialog1.InitialDirectory = IO.Directory.GetCurrentDirectory
        OpenFileDialog1.Filter = "色情報ファイル(*.txt)|*.txt|すべてのファイル(*.*)|*.*"
        SaveFileDialog1.Filter = "色情報ファイル(*.txt)|*.txt|すべてのファイル(*.*)|*.*"
    End Sub

それぞれの設定は一度だけでよい。
結果 ファイルの種類が選択できる。

 プログラムのようにフィルタを設定すると2つのファイルの種類から選択することができる。ダイアログを表示したとき、2番目の「すべてのファイル(*.*)」を表示させるには、FilterIndexプロパティに2を設定する。FilterIndexプロパティの設定が省略されているときは1である。

 ファイルのダイアログのタイトルは、[開く]ボタンをクリックしたときは「ファイルを開く」と表示され、[保存]ボタンをクリックしたときは「名前を付けて保存」と表示される。このダイアログのタイトルはTitleプロパティで設定することができる。


 back next 
 §12 ファイル処理(2)4 Copyright©2008 Hiroshi Masuda 

 

 

inserted by FC2 system