Reputation: 137
I am having trouble saving from richtextbox to .txt file
here is the code:
if (richTextBox1.Text != String.Empty)
{
string dir = @"c:\\logs\\" + DateTime.Today.ToString("dd_MMM_yy");
string path = @"c:\\logs\\" + DateTime.Today.ToString("dd_MMM_yy") + "\\" + DateTime.Now.ToString("HH.mm.ss") + ".txt";
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
if (!File.Exists(path))
{
File.Create(path);
richTextBox1.SaveFile(path, RichTextBoxStreamType.RichText);
}
}
else
MessageBox.Show("ERROR");
where I am going wrong ?! It says it cannot access the file because it is being used by another process... Any help would be welcome
Thanks, dnisko
Upvotes: 3
Views: 21855
Reputation: 890
It seems the SaveFile()
method is gone. So another way to save is with
TextRange range = new(richTextBox1.Document.ContentStart, richTextBox1.Document.ContentEnd);
FileStream fStream = new(fileName, FileMode.Create);
range.Save(fStream, DataFormats.Rtf);
fStream.Close();
Upvotes: 0
Reputation: 17
to save the file
private void btnSave_Click(object sender , EventArgs e)
{
string _Path=@"C:\temp\Untitled.txt";
if (!File.Exists(_Path))
{
StreamWriter SW = new StreamWriter(_Path);
SW.WriteLine(richTextBox1.Text);
SW.Close();
}
else if (File.Exists(_Path))
{
MessageBox.Show("This File is Exists");
SaveFileDialog SFD = new SaveFileDialog();
SFD.FileName = "";
SFD.AddExtension = true;
SFD.DefaultExt = ".txt";
DialogResult result= SFD.ShowDialog();
if(string.IsNullOrEmpty( SFD.FileName))
{
return;
}
else if(result==DialogResult.OK)
{
StreamWriter SW = new StreamWriter(SFD.FileName);
SW.WriteLine(richTextBox1.Text);
SW.Close();
}
}
Upvotes: 0
Reputation: 1
richTextBox1.SaveFile(saveFile1.FileName, RichTextBoxStreamType.PlainText);
Upvotes: 0
Reputation: 63065
you can avoid create file line because SaveFile
will create file for you.
File.Create
will return open stream for the file, you need to close it before access again. Do as below If you need to use create file anyway
using(File.Create(path));
richTextBox1.SaveFile(path, RichTextBoxStreamType.RichText);
Upvotes: 8
Reputation: 13380
File.Create
returns the Stream of the file created.
As long as you do not dispose it, it will keep the file open
You can also use the Stream to directly write to the file. Using the using
statement helps getting around any allocation issues.
using (FileStream fs = File.Create(path))
{
Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
// Add some information to the file.
fs.Write(info, 0, info.Length);
}
Upvotes: 1