2012-05-12 8 views
1

私はCLI/CLRとアンマネージコードを使用していますが、この問題はCLI/CLRの部分に関係しています。SaveFileDialogの標準でないファイル拡張子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 (*.*)|*.*"; 

例:SaveFileDialogボックス内のテキストボックス:私は既存のファイル「File01.csv」を選択し、それは、既存の「ファイル名」に置かれSaveFileDialogボックスで

  1. listViewボックスには、フィルタに適合するファイルのみが表示されます。 * .txtファイルではなく、* .txtファイルのみを表示します。

  2. ただし、 "Save as type:" comboBoxを "-C2.txt"に変更し、新しいファイル名は "file01-C2.txt"ではなく "file01.txt"に変更します。

+1

'-c2.txt'は拡張子ではなく、' .txt'部分は...ファイル拡張子はファイル名の最後の部分であると定義され、最後の '.'が名前に含まれます。 –

+0

右。 .c2txtを拡張子として使用してください。 3文字の拡張子は、従来の短い名前のサポートではあいまいな問題を避けるため、代わりに.c2tを選択するのをためらってください。 –

答えて

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]); 

ノートのように、選択したファイルのパスを自分で変更することです「」ファイルパス内のどこにでも置くことができます。あなたはを-C2.txtとして使用することはできません.-C2.txtとなります。

こちらがお役に立てば幸いです。

+0

ええ、私はこれらのすべてと同じ行を考えていましたが、ユーザーにこの特定の種類のファイルを保存するための詳細を与える必要があるように見えます。問題は、 "-C2.txt"が別のレガシーコード(私ではない)が使用する特定の擬似拡張であり、そのレガシーコードは非常にユーザーフレンドリーではないということです。彼らのためのバマー、笑。 –

関連する問題