将打开的文本文件保存到原始位置



我正在创建一个应用程序,该应用程序将允许我打开一个.txt文件,并在datagridview中编辑值(重量= 60,高度= 50等(。我的问题是我能够使用OpenFileDialog上传.txt文件,但无法写入并将其保存在以前的位置中。

为了澄清,这是我上传文本文件的方法:

private void btnUpload_Click(object sender, EventArgs e)
    {
        Stream myStream;
        openFileDialog1.FileName = string.Empty;
        openFileDialog1.InitialDirectory = "C:\";
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            var compareType = StringComparison.InvariantCultureIgnoreCase;
            var fileName = Path.GetFileNameWithoutExtension(openFileDialog1.FileName);
            var extension = Path.GetExtension(openFileDialog1.FileName);
            if (extension.Equals(".txt", compareType))
            {
                try
                {
                    using (myStream = openFileDialog1.OpenFile())
                    {              
                        string file = Path.GetFileName(openFileDialog1.FileName);
                        string path = Path.GetDirectoryName(openFileDialog1.FileName);
                        StreamReader reader = new StreamReader(openFileDialog1.FileName);
                        string line;
                        while ((line = reader.ReadLine()) != null)
                        {
                            string[] words = line.Split('=');
                            paramList.Add(new Parameter(words[0], words[1]));
                        }
                        BindGrid();
                    }
                }

以及我尝试保存文件的内容:

public void WriteToTextFile(DataGridView dgvParam)
    {
        String file_name = Path.GetFileNameWithoutExtension(openFileDialog1.FileName);
        using (StreamWriter objWriter = new StreamWriter(openFileDialog1.FileName))
        {
            for (Int32 row = 0; row < dgvParam.Rows.Count - 1; row++)
            {
                StringBuilder sb = new StringBuilder();
                for (Int32 col = 0; col < dgvParam.Rows[row].Cells.Count; col++)
                {
                    if (!String.IsNullOrEmpty(sb.ToString()))
                        sb.Append("=");  //any delimiter you choose
                    sb.Append(dgvParam.Rows[row].Cells[col].Value.ToString().ToUpper());
                }
                objWriter.WriteLine(sb.ToString());
            }
        }

它说它是OpenFileDialog目前正在使用的,无法达到它!任何建议或建议都将不胜感激!

您需要处置reader变量。

您应该完全摆脱第一个using语句,然后将其包裹在using语句中。

最新更新