WriteAllBytes Error

本文关键字:Error WriteAllBytes | 更新日期: 2023-09-27 18:17:11

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

我用这个方法保存一个文件到磁盘:

    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方法没有重载

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"));
                    }
                }
            }
        }               

WriteAllBytes Error

正如错误提示的那样,WriteAllBytes没有一个参数的重载。您必须指定要写入的字节以及路径。你已经在你的第一个代码块中设置好了,所以再重复一次:

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

您缺少一个参数,并且您没有传递数据以写入您的位置。Path.Combine(flg.SelectedPath, table.Title + ".dat")是一个参数,你忘了传递第二个参数。

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