1

次のコードは Windows 7 (32 ビット) では正常に動作しますが、64 ビットに移植すると、「ファイルが見つかりません」という例外が発生します。プロジェクトを 64 ビット構成でビルドしましたが、問題は解決しません。

この問題は、マシンに Office がインストールされていない場合に発生します。

コードは次のとおりです。

try
{
    SaveFileDialog fileDialog = new SaveFileDialog();

    fileDialog.InitialDirectory = path;

    // set the default extension as mdb.
    fileDialog.DefaultExt = ".mdb";

    // allow the user to select the file type as CSV, XML or MDB.
    fileDialog.Filter = "CSV (*.csv)|*.csv|XML (*.xml)|*.xml|MDB (*.mdb)|*.mdb";                
    fileDialog.RestoreDirectory = true;

    if (DialogResult.OK == fileDialog.ShowDialog())  // exception occured
    {
        this.fileNameTextBox.Text = fileDialog.FileName;
    }
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}
4

1 に答える 1

1

ここで問題となるのは、「パス」の値です。x86 マシンと x64 マシンではフォルダー構成が異なる場合があります。たとえば、Program Files (x86) はその 1 つです。Environment.SpecialFolders 列挙型から始めることができます。これらのパスは有効である必要があります。

于 2012-08-09T09:49:01.890 に答える