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块中