Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2020, 14:22   #1
plktre
Пользователь
 
Регистрация: 09.09.2019
Сообщений: 43
По умолчанию c#

При попытке "сохранить как" в диалоговом окне "имя файла" прописан весь путь файла, а нужна только часть(имя файла+расширение)
Код:
 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);
            }
        }

    }
plktre вне форума Ответить с цитированием
Старый 30.09.2020, 16:43   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от plktre Посмотреть сообщение
нужна только часть(имя файла+расширение)

имя файла+расширение
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц