0

C#WPF应用程序中使用以下代码

我正在使用这种方法将一个文件保存到磁盘:

    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 方法“WriteAllBytes”没有重载的方法需要 1 个参数

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没有一个参数的重载。您必须指定要写入的字节以及路径。你在你的第一个块中就有了它,所以只需再次执行相同的操作:

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")是一个参数,你忘了传递第二个参数。

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