1

私は CLI/CLR とアンマネージ コードを使用していますが、この質問は CLI/CLR 部分に関連しており、c# コードでも同じ動作を観察しました。

標準のファイル拡張子規則に準拠していない従来のファイル名でファイルを保存しようとしています。ファイル拡張子は「-C2.txt」ですが、残念ながら SaveFileDialog::Filter メソッドを使用すると、ファイル名に「-C2」の部分が含まれません。これを可能にする SaveFileDialog の回避策はありますか?

SaveFileDialog^ cDlg = gcnew SaveFileDialog;
cDlg->Filter = "csv file (*.csv)|*.csv|-C2.txt file (*-C2.txt)|*-C2.txt|All Files (*.*)|*.*";

例:

  1. SaveFileDialog ボックスで既存のファイル "File01.csv" を選択し、それを SaveFileDialog ボックスの既存の "File name:" テキスト ボックスに配置します。

  2. listView ボックスには、フィルタに適合するファイルのみが表示されます。たとえば、*-C2.txt ファイルのみが表示され、*.txt ファイルは表示されません。

  3. ただし、「ファイルの種類:」コンボボックスを「-C2.txt」に変更すると、新しいファイル名は「file01-C2.txt」ではなく「file01.txt」になります。

4

1 に答える 1

1

いいえ、ダイアログでこれを行う方法はありません。Jeff Mercado が正しく述べているように、「-ct.txt拡張機能ではなく、その.txt部分は...」です。

私が提供できる最善の解決策は、選択したファイルパスを自分で変更することです。

string strFullPath = FileBrowser.Filename; // Has your "SomeFile.txt
string[] strTmpArr = strFullPath.Split('.');
strFullPath = String.Format("{0}-C2.txt", strTmpArr[0]);

これは、「。」がないことを前提としていることに注意してください。ファイルパスの他の場所。作られPath.ChangeExtension()てそのままでは使えません。-C2.txt.-C2.txt

これが役立つことを願っています。

于 2012-05-12T17:57:38.233 に答える