Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# StreamWriter对象没有';我根本不工作_C#_.net_Filestream_Streamwriter_Writetofile - Fatal编程技术网

C# StreamWriter对象没有';我根本不工作

C# StreamWriter对象没有';我根本不工作,c#,.net,filestream,streamwriter,writetofile,C#,.net,Filestream,Streamwriter,Writetofile,此代码在SaveFileDialog private void buttonSaveAs_Click(object sender, EventArgs e) { try { if (selectedFileInfo != null) { // Save File SaveFileDialog

此代码在
SaveFileDialog

private void buttonSaveAs_Click(object sender, EventArgs e)
        {
            try
            {
                if (selectedFileInfo != null)
                {
                    // Save File
                    SaveFileDialog saveFileDialog1 = new SaveFileDialog();
                    saveFileDialog1.InitialDirectory = explorerTree2.SelectedPath; 
                    // set a default file name
                    saveFileDialog1.FileName = Path.GetFileNameWithoutExtension(selectedFileInfo.Name) + "-COPY" + selectedFileInfo.Extension;
                    // set filters - this can be done in properties as well
                    saveFileDialog1.Filter = "HTM files (*.htm)|*.htm|HTML files (*.html)|*.html|XML files (*.xml)|*.xml|Text files (*.txt)|*.txt|All files (*.*)|*.*";

                    #region Define filter index

                    if (selectedFileInfo.Extension.Equals(".htm")) // HTM files (*.htm)|*.htm
                    {
                        saveFileDialog1.FilterIndex = 1;
                    }
                    else // All files (*.*)|*.*
                    {
                        saveFileDialog1.FilterIndex = 5;
                    }

                    #endregion

                    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                        using (StreamWriter sw = new StreamWriter(saveFileDialog1.FileName))
                        { 
                            sw.Write(scintilla1.Text);
                            sw.Flush();
                            sw.Close();
                        }
                    }
                }
            }
            catch (IOException ex)
            {
                MessageBox.Show(ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
另一个则不然。而且也没有任何错误。有线索吗

private void buttonSave_Click(object sender, EventArgs e)
{
    try
    {
        if (selectedFileInfo != null)
        {
            using (FileStream fs = new FileStream(selectedFileInfo.Name, FileMode.OpenOrCreate, FileAccess.ReadWrite))
            {
                StreamWriter sw = new StreamWriter(fs);
                sw.AutoFlush = true;
                sw.Write(scintilla1.Text);                       
                sw.Flush();
                sw.Close();
            }

        }
    }
    catch (IOException ex)
    {
        MessageBox.Show(ex.Message);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
p.S.此选项也不起作用

 using (FileStream fs = new FileStream(selectedFileInfo.Name, FileMode.OpenOrCreate, FileAccess.ReadWrite))
   {
         using (StreamWriter sw = new StreamWriter(fs))
         {
               sw.AutoFlush = true;
               sw.Write(scintilla1.Text);
               sw.Flush();
               sw.Close();
         } 
}

我找到了正确的解决办法

其中1.Text是您必须写入的字符串 而selectedFileInfo是一个
FileInfo
对象。在您的例子中,1.Text可能类似于
string
RichTextBox
或任何其他文本编辑器控件

  private void buttonSave_Click(object sender, EventArgs e)
        {
            if (selectedFileInfo != null)
            {
                FileStream stream = null;

                try
                {
                    stream = selectedFileInfo.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None);
                    using (StreamWriter sw = new StreamWriter(stream))
                    {
                        sw.AutoFlush = true;
                        sw.Write(scintilla1.Text);
                        sw.Flush();
                        sw.Close();
                    }
                }
                catch (IOException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    if (stream != null)
                        stream.Close();
                }
            }
        }

“还有任何错误。”那么错误是什么,它发生在哪一行?@B.ClayShannon没有任何错误。调试器在这里可以帮助很多。selectedFileInfo的值是多少。Name@Steve它具有文件inc.文件名的完整路径。观察到的错误行为是什么?如果它没有在文件中写入任何内容,那么尝试将StreamWriter也放在using块中