0

アプリケーションで以下のコードを使用してC#いますWPF

この方法を使用して、1 つのファイルをディスクに保存しています。

    private void executeSaveAttachment(object parameter)
    {
        SaveFileDialog dlg = new SaveFileDialog();
        {
            dlg.AddExtension = true;
            dlg.DefaultExt = "xlsx";
            dlg.Filter = "New Excel(*.xlsx)|*.*";
            foreach (var table in Table)
            {
                if (dlg.ShowDialog() ?? false)
                {

                    File.WriteAllBytes(dlg.FileName, table.Data);

                }
            }
        }
    }

この方法を使用して、複数のファイルをユーザーが選択できる場所に保存しようとしていますが、Titleプロパティからデフォルトのファイル名を指定して.xlsx拡張子を追加しようとしています。classは名前が付けられ、TableプロパティDataはバイナリです。

エラー 4 No overload for method 'WriteAllBytes' takes 1 arguments を与えているメソッドは次のとおりです。

private void executeSaveAttachments(object parameter)
        {

            {
                System.Windows.Forms.FolderBrowserDialog flg = new System.Windows.Forms.FolderBrowserDialog();


                foreach (var table in Table)
                {
                    if (flg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    {

                        File.WriteAllBytes(Path.Combine(flg.SelectedPath,  table.Title + ".dat"));

                    }
                }
            }
        }               
4

2 に答える 2

3

エラーが示すように、WriteAllBytesには引数が 1 つのオーバーロードはありません。書き込むバイトとパスを指定する必要があります。あなたは最初のブロックでそれを正しく持っているので、同じことをもう一度やり直してください:

File.WriteAllBytes(Path.Combine(flg.SelectedPath,  table.Title + ".dat"), table.Data);
于 2013-06-06T15:55:22.723 に答える
2

引数が欠落しており、場所に書き込むデータを渡していません。Path.Combine(flg.SelectedPath, table.Title + ".dat")は 1 つの引数です。2 番目の引数を渡すのを忘れました。

File.WriteAllBytes(
    Path.Combine(flg.SelectedPath,  table.Title + ".dat"),
    table.Data
);
于 2013-06-06T15:57:54.277 に答える