При попытке "сохранить как" в диалоговом окне "имя файла" прописан весь путь файла, а нужна только часть(имя файла+расширение)
Код:
class Editor : TabControl
{
OpenFileDialog openFileDialog = new OpenFileDialog();
private Doc ActivityDoc //свойство
{
get
{
return (this.SelectedTab as Doc); // возвращает активную вкладку и приводит ее к типу Doc
}
}
private bool Modified;
public void New()
{
Doc doc = new Doc(); //создание объекта класса документ
this.Location = new Point(5, 25); //местоположение TabPage
this.Size = new Size(500, 340); //размер TabPage
this.Controls.Add(doc); //добавление к TabControl TabPage(this==TabControl)
this.SelectedTab = doc; //сделать вкладку активной
}
public void OpenDoc()
{
if (openFileDialog.ShowDialog() == DialogResult.OK) //Проверяем был ли выбран файл
{
string name = openFileDialog.FileName; //имя файла в переменную name
New();
ActivityDoc.Open(name); //у свойства типа Doc вызывается метод open(name)
}
}
public void SaveAs()
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.FileName = openFileDialog.FileName;
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
string name = saveFileDialog.FileName; //имя файла в переменную name1
ActivityDoc.SaveAs(name);
}
}
}
class Doc : TabPage
{
TextBox textBox = new TextBox();
public Doc()
{
textBox.Multiline = true; //свойство многострочности textBox
textBox.Size = new Size(500, 340); //размер textBox
textBox.Parent = this; //привязка textBox к TabPag(this==TabPage)
}
public void Open(string fileName)
{
this.Text = System.IO.Path.GetFileName(fileName);
try
{
var reader = new System.IO.StreamReader(fileName, Encoding.GetEncoding(1251)); //создается поток для чтения из файла
textBox.Text = reader.ReadToEnd();
reader.Close(); //потоковый читатель закрывается
}
catch (System.IO.FileNotFoundException Mistake) //исключение, если файла не существует
{
MessageBox.Show(Mistake.Message + "\nФайл не существует",
"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
catch (Exception Mistake) // отчет о других ошибках
{
MessageBox.Show(Mistake.Message,
"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
public void SaveAs(string fileName)
{
fileName = System.IO.Path.GetFileName(fileName);
try
{
var writer = new System.IO.StreamWriter(fileName, false, System.Text.Encoding.GetEncoding(1251)); //создается поток для записи
writer.Write(textBox.Text);
writer.Close(); //поток закрывается
}
catch (Exception Mistake) // отчет о других ошибках
{
MessageBox.Show(Mistake.Message,
"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
}