【问题标题】:browse.FileName doesn't set my string variablebrowse.FileName 没有设置我的字符串变量
【发布时间】:2018-01-30 18:32:31
【问题描述】:

所以我目前正在为课程作业创建一个测验,最初我的所有问题都包含在 txt 文件中。我现在正在将问题放入一个二进制文件中。为了让我自己更轻松,我正在尝试制作一个转换器按钮,它将一个字符串变量设置为 txt 文件的路径,但它不会分配自己。

        string file_name;

        OpenFileDialog browse = new OpenFileDialog();
        browse.Filter = "Choose Questions to import(*.txt;)|*.txt";

        if (browse.ShowDialog() == DialogResult.OK)
        {
            file_name = browse.FileName;
        }

        System.IO.StreamReader txtReader;
        txtReader = new System.IO.StreamReader(file_name);

【问题讨论】:

  • 是时候使用调试器了。在 if 中放置断点并检查 browse.FileName 的值。
  • @Steve 嗯,已经有一个错误,所以程序无论如何都不会加载,但感谢您的响应。
  • 顺便说一下,如果你不将字符串文件名设置为初始值,上面的代码不会编译
  • 怀疑。问题在于 file_name 的初始化失败 声明时将其设置为空字符串。并遵循以下答案中的建议。
  • 成功了,该死的我怎么没看到。谢谢大佬

标签: c# winforms filenames openfiledialog


【解决方案1】:

问题是您应该在 OK 部分中执行所有代码。

否则,如果他们取消,则会引发错误。

您还想使用 USING 语句来读取文件,以便处理资源。

browse.FileName 有效。

    OpenFileDialog browse = new OpenFileDialog();
    browse.Filter = "Choose Questions to import(*.txt;)|*.txt";

    if (browse.ShowDialog() == DialogResult.OK)
    {
        string file_name = browse.FileName;

        using (System.IO.StreamReader txtReader = new System.IO.StreamReader(file_name))
        {

            // Do Your File Manipulation Here!

        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-08
    • 1970-01-01
    • 2016-04-21
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多