FileクラスのopenDialog関数は、ファイル選択ダイアログを表示してユーザーにファイルの選択を促します。なお、引数はすべてオプション項目です。

File.openDialog(prompt, filter, multiSelect)

返り値は選択されたファイルのFileオブジェクトで、キャンセルされた場合はnullが返ります。

 

<引数>

prompt string ウィンドウのタイトル
filter string 選択可能なファイルを制限する
multiSelect boolean 複数のファイルを選択可能にする場合にtrue。デフォルトはfalse

 

promptはダイアログウィンドウに表示されるタイトルです。

filterオプションによって選択可能なファイルタイプを制限することができます。例えばjpegファイルだけに絞りたい場合は「*.jpg」とします。複数のファイルタイプ選択可能にする場合は、「*jpg; *png」のようにセミコロンでつないで指定します。

File.openDlg('ファイル選択','*jpg; *png');

なお、Windowsでは選択ウィンドウに該当ファイル(とフォルダ)しか表示されなくなりますが、Macではすべてが表示された上で、選択されたファイルが違っていた場合にnullを返すという挙動になります。

multiSelectオプションにtrueを渡すと、複数ファイルの選択を可能にします。なお、その場合の返り値は配列になります。

File.openDlg('ファイル選択','*png', true);

 

<例>

var fObj= File.openDialog('ファイルを選択');
if (fObj != null) {
    alert('OK');
}else{
    alert('cancel');
}

ユーザーがファイルを選択してOKをクリックした場合はFileオブジェクト、キャンセルされた場合はnullが返るので、ファイルへアクセスする前にチェックします。

 

<任意のディレクトリを指定してダイアログを開く>

openDialog関数では初期表示ディレクトリ(フォルダ)を指定することはできません。初期表示ディレクトリを指定したい場合はFileオブジェクトのopenDlg関数を使います。

var fObj= new File('~/Desktop/testFolder');
fObj= fObj.openDlg('ファイル選択','*png', true);
if (fObj != null) {
    alert('OK');
}else{
    alert('cancel');
}

まず、new演算子で初期表示にしたいディレクトリのFileオブジェクトを作成します(参考:ファイルパスからFileオブジェクトを作成する)。ディレクトリではなくファイルを指定するとそれがデフォルト選択ファイルになります(注意:ファイルの有無は関知されません)。

次に作成したFileオブジェクトのopenDlg関数でファイル選択ダイアログを表示させます。

その後、返り値がFileオブジェクト、キャンセルされた場合にnullが返るのはopenDialog関数と同様です。

 

<保存用のダイアログ>

ファイルの保存用にダイアログを開く場合は、FileクラスのsaveDialog関数を使います。挙動は基本的にopenDialog関数と同じですが、確定ボタンが「OK」ではなく「保存」になっています。また、性質上multiSelectオプションはありません。

var fObj= File.saveDialog('ファイルの保存');
if (fObj != null) {
    alert('OK');
}else{
    alert('cancel');
}

 

しかし、saveDialog関数ではopenDialog関数と同様に初期表示ディレクトリ(フォルダ)を指定することはできません。また、保存ファイルのデフォルト名も指定できません。

初期表示ディレクトリ、またはファイルを指定したい場合はFileオブジェクトのsaveDlg関数を使用します。なお、挙動はopenDlg関数と同様です。

var fObj= new File('~/Desktop/testFolder/testFile.txt');
fObj= fObj.saveDlg('ファイルの保存');
if (fObj != null) {
    alert('OK');
}else{
    alert('cancel');
}

 

 

Joomla templates by a4joomla