FileStream没有从外部类读取FileName输入

时间:2013-06-18 02:24:36

标签: c# .net file hex

我正在尝试创建一个字节编写器。到目前为止,我已经让程序在继续编写writer之前将文件头写为一般测试。问题是,在我通过coreForm的{​​{1}}选择文件后,该行

coreSaveFileDialog

没有从对话框中看到FileName,并抛出一个异常,说“空路径名不合法。”

以下是我方法的来源:

var fs = new FileStream(classCoreForm.CoreSaveFileDialog.FileName, FileMode.Open, FileAccess.ReadWrite);
正在从名为internal void writeHeader() { var classCoreForm = new coreForm(); //Creates reference instance for coreForm= var fs = new FileStream(classCoreForm.coreSaveFileDialog.FileName, FileMode.Open, FileAccess.ReadWrite); /* * Writes file header via fs.WriteByte . . . */ } 的初步函数调用

writeHeader。这是它的来源。

saveScript

我做错了什么?我是否在SaveFileDialog的属性中错误地设置了某些内容,或者它是否在上面的代码中?

1 个答案:

答案 0 :(得分:1)

saveScript()调用writeHeader,但它不会将任何内容传递给writeHeader。然后,您将创建一个全新的“coreForm”实例,该实例与您在saveScript方法中创建的实例分开。

更改writeHeader以接受文件名作为参数:

internal void writeHeader(string fileName)
{
    //var classCoreForm = new coreForm(); //Creates reference instance for coreForm=
    var fs = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite);
    /*
     * Writes file header via fs.WriteByte . . .
     */
}

然后,在saveScript()方法中,更改writeHeader();到

writeHeader(classCoreForm.coreSaveFileDialog.FileName);

如果在saveScript中出于其他原因需要coreForm,您可能希望通过引用传递coreForm,或者将您可能需要的其他变量传递给saveScript。