・以下はWindows7SP1で検証した内容となります。他のWindowsについてもいずれまとめる。
・規格その他の情報については2018年5月時点のものになります。追加情報あり次第修正。
・内容は独自研究のため間違っている可能性あり
フォルダパスを指定する場合、「ドライブレターを指定してローカルPC上のフォルダパス」を直接指定する場合と、「UNCを指定し、ネットワーク上のフォルダパス」を指定する形式が考えられます。
・「相対パス」を指定する場合もありますが、あらかじめファイル出力先などの格納先パスをあらかじめ指定しておくコントロールに相対パスを指定しておくといったものは想定しがたいので、ここでは検討対象外とします。
・不正なパス指定が「入力時点でエラーとなる」「設定保存時にエラーとなる」「そもそも入力できない」などのエラーパターンがありうるので、どの入力がどのエラーとなるかは事前に確認しておくこと。
●ドライブレター指定形式
「C:\test\」のようにドライブレターを指定してローカルPC上フォルダの直接パスを指定する入力形式。
・ドライブレター指定が2文字以上
「ZZ:\test\」などのドライブレター指定文字が2文字以上となる場合
ドライブレターの形式はA~Zまでなので、ドライブレターに2文字以上指定した場合、必ず不正となる
・コロンなし
「C\test\」のように、ドライブレター→フォルダ間に「:」(コロン)がない場合
・コロンが2つ以上
「C::\test\」のように、ドライブレター→フォルダ間の「:」(コロン)が複数指定されている場合
フォルダ名に「:」が使えないため、ドライブレター→フォルダ間以外の部分にそもそも「:」が指定できない。
・コロン後、\なし
「C:test\」のように、ドライブレター→フォルダ間の「:」(コロン)後に\(バックスラッシュ)がない場合
・コロン後、\が複数
「C:\\test\」のように、ドライブレター→フォルダ間の「:」(コロン)後に\(バックスラッシュ)が複数指定されている場合
・パスの末尾に\が複数
「C:\test\\」のように、パスの末尾に\(バックスラッシュ)が複数指定されている場合
末尾\複数は自動的に修正される場合もあり。
・パスの末尾に\なし
「C:\test」のように、パスの末尾に\(バックスラッシュ)が指定されていない場合
フォルダパス入力項目ではたいてい、処理の最後に\が無い場合、自動的に指定されるためめったに問題にならないと思われる。
ただし入力確定時に\が補完される、設定保存時に\が補完されるなど\が差し挟まれるタイミングが異なるパターンの場合あり。
●UNC指定形式
「\\test_server\test」のようにネットワーク上のコンピュータ名→フォルダの直接パスを指定する入力形式。
・コンピュータ名指定の前方\が1つ
「\test_server\test\」のようにコンピュータ名指定部分の前方にある\(バックスラッシュ)が1文字分しかない場合
UNC指定時のコンピュータ名指定部分は前方に「\\」2文字である必要があるため、不正な指定となる
・コンピュータ名指定の前方\が3つ以上
「\\\test_server\test\」のようにコンピュータ名指定部分の前方にある\(バックスラッシュ)が3文字以上ある場合
UNC指定時のコンピュータ名指定部分は前方に「\\」2文字である必要があるため、不正な指定となる
・パス末尾\が2つ以上
「\\test_server\test\\」のようにコンピュータ名指定部分の前方にある\(バックスラッシュ)が2文字以上ある場合
末尾\複数は自動的に修正される場合もあり。
・パス末尾\なし
「\\test_server\test」のようにコンピュータ名指定部分の前方にある\(バックスラッシュ)がない場合
フォルダパス入力項目ではたいてい、処理の最後に\が無い場合、自動的に指定されるためめったに問題にならないと思われる。
ただし入力確定時に\が補完される、設定保存時に\が補完されるなど\が差し挟まれるタイミングが異なるパターンの場合あり。
なお「フォルダ指定先頭の\が2文字以上」の場合はエラーにならない?
「\\test_server\\test\」←こういう形式
これが処理系によるものなのか、UNCの仕様なのかは調査中
<例外>
フォルダパス指定時にエラーとなるわけではないが処理系が異なることがあるパターンの指定について
・存在しないフォルダ
パス指定時には存在していない(あるいは指定後にフォルダが削除されている)フォルダがパスに指定されている場合等。
この場合、そのパスにファイル出力などを行う場合「エラーとなる」、「指定パスに示されたフォルダが作成される」などのパターンがありうる。
・存在しないドライブレター指定
ドライブレター指定形式時に、ローカルPCに存在していないドライブレターが指定されている状態
リムーバブルディスクなどにより、指定時は存在していたが出力時は存在していないといった形式もあり得るため、入力時に制限されていない場合が殆どと思われる。
試験としては「存在しないドライブレターが指定できる」「出力動作時に存在しないドライブレターに出力できない」などが確認どころか。