15

一部のタスク操作のために XML ファイルまたは CSV ファイルをロードする C# Windows フォーム アプリケーションがあります。[参照] ボタンをクリックすると、[ファイルを開く] ダイアログ ボックスが表示され、ドライブ上の場所に移動してファイルを選択し、[アップロード] ボタンを使用してアップロードできます。

JPG や ZIP ファイル、または CSV や XML 以外の形式のファイルを読み込むと、アプリケーションがクラッシュします。ファイルを開くダイアログ ボックスを制限して、C# で CSV ファイルまたは XML ファイルのみを開く方法はありますか?

4

3 に答える 3

32

使用する

openFileDialog.Filter = "CSV files (*.csv)|*.csv|XML files (*.xml)|*.xml";

この方法では、csv ファイルまたは xml ファイルのみが表示されます。

奇数のパイプは、[フィルター] ドロップダウンに表示されるものと対応する実際のファイル拡張子の間を示し、偶数のパイプは最初のファイル拡張子全体と 2 番目のファイル拡張子の間を示します。

たとえば、「CSV ファイル (*.csv)|*csv」は、ユーザーがフィルター ドロップダウンに「CSV ファイル (*.csv)」を表示し、そのオプションが一致するファイルを検索することを意味します*.csv

上記のコード行で、「XML」の前のパイプは、CSV オプションの下に表示されるまったく新しいフィルター オプションを示しています。

ただし、完全な名前を入力すると、ユーザーは他のファイルタイプを選択することもできます。そのため、選択されたファイル名を確認し、それに応じてコードを修正してください。

于 2012-08-24T11:36:05.703 に答える
1

プロパティを使用しFilterて、ユーザーが特定の種類のファイルを選択できるようにすることができます。

でも!これは保証ではありません。ユーザーは、ファイル名ボックスに「(星).(星)」と入力して、すべてのファイルを表示することができます。そのため、結果のファイルもコードで確認する必要があります。

メソッドでこれを行うことができますPath.GetExtension()

于 2012-08-24T11:37:54.907 に答える
0

上記のように、.xml ファイルと csv ファイルのみを表示する [ファイルを開く] ダイアログでフィルターを適用できます。path.getextension http://msdn.microsoft.com/en-us/library/system.io.path.getextension.aspxを使用すると、ユーザーが実際に正しい拡張子のファイルを選択したかどうかを確認できます。間違った拡張子が選択されている場合は、別のファイルを選択するように求めることができます。

アップロードする前にファイル拡張子を確認することを強くお勧めします。ユーザーがファイルを選択した後、拡張子を確認してください。間違ったファイルが選択された場合は、アップロード/処理を続行しないでください...

于 2012-08-24T11:40:22.643 に答える