Добрый вечер. Подскажите пожалуйста , как скопировать содержимое загруженного txt файла через OpenDialogFile в другой txt файл. public void function_f1() { OpenFileDialog function_f1 = new OpenFileDialog(); function_f1.Filter = "Текстовый Файл (*.txt)|*.txt"; if (function_f1.ShowDialog() == true) { wmsoft.textboxtest1.Text = File.ReadAllText(function_f1.FileName, Encoding.Default); } } Код public void function_f1() { OpenFileDialog function_f1 = new OpenFileDialog(); function_f1.Filter = "Текстовый Файл (*.txt)|*.txt"; if (function_f1.ShowDialog() == true) { wmsoft.textboxtest1.Text = File.ReadAllText(function_f1.FileName, Encoding.Default); } } Здесь указанно , что я должен загрузить файл с форматом txt , после загрузки , выполняется трансляция содержимого в textbox , мне нужно сделать так , чтобы содержимое отправлялось в корневую папку с софтом в Файл - Log.txt . И также нужно , чтобы в Log.txt , содержимое добавилось , без перезаписи содержимого. Т.е , если условно в файле уже есть какие то записи , то просто ниже вставляется содержимое из функции. что то на подобии , метода AppendText .
ПожилаяШляпа, Это запись содержимого с textbox , его я указал чисто для примера , мне нужно , чтобы на прямую было сохранение с загруженного файла в файл Log.txt
SNAIQ, они идентичны, какое тебе больше нравится. второй вариант по идее вызовет меньше вопросов о том почему ты сравниваешь значение с true
SNAIQ, очищай лишние using's перед namespace'ом которые (серым обозначены) и зелёные тоже, потом просто первый предложенный вариант тебе предоставит, тот и выбирай. А то у тебя там каша. А лучше скинь проект целиком что ты там делаешь и тебе сделают нормально.
public void function_f1() { using (FileStream file = new FileStream("Текстовый Файл (*.txt)|*.txt", FileMode.Append)) //Объявляешь обьект файла с режимом добавления строк и своим путем. { using (StreamWriter sw = new StreamWriter(file))//Объявляешь обьект StreamWriter { sw.WriteLine("Абра-кадабра!");//Запись строк на прямую в файл using (StreamReader sr = new StreamReader(file)) //Сюда объект файлика от куда, что читать. { Console.WriteLine(sr.ReadLine()); //Вывод строк: Абра-кадабра! } } }//С оптимизацией все должно быть ок, так как тут используем using, при завершении инструкций, очистит занятую память и процесс не будет дергать файл. //Так же хорош тем что может дергать большие обьемы информации из бд или из файликов как в твоем случае //Так же лучше это все делать асинхронно. //Если хочешь на прямую, то либо гетай путь до перетаскиваемого файла - сохраняй его (файл), либо по байтам собирай где надо, можно вроде сразу в файлик все это дело записать с новой строки. } C# public void function_f1() { using (FileStream file = new FileStream("Текстовый Файл (*.txt)|*.txt", FileMode.Append)) //Объявляешь обьект файла с режимом добавления строк и своим путем. { using (StreamWriter sw = new StreamWriter(file))//Объявляешь обьект StreamWriter { sw.WriteLine("Абра-кадабра!");//Запись строк на прямую в файл using (StreamReader sr = new StreamReader(file)) //Сюда объект файлика от куда, что читать. { Console.WriteLine(sr.ReadLine()); //Вывод строк: Абра-кадабра! } } }//С оптимизацией все должно быть ок, так как тут используем using, при завершении инструкций, очистит занятую память и процесс не будет дергать файл. //Так же хорош тем что может дергать большие обьемы информации из бд или из файликов как в твоем случае //Так же лучше это все делать асинхронно. //Если хочешь на прямую, то либо гетай путь до перетаскиваемого файла - сохраняй его (файл), либо по байтам собирай где надо, можно вроде сразу в файлик все это дело записать с новой строки. } Все условия свои, объекты, диалоговые окна расставить осталось. И не пиши так пж: Вместо if (function_f1.ShowDialog() == true), лучше if (function_f1.ShowDialog()), так как если функция возвращает bool, на true можно не использовать операторы Про File.ReadAllText(function_f1.FileName, Encoding.Default); - Его лучше вообще никогда не использовать, так как жутко не оптимизированный, не умеет нормально читать большие данные, с освобождением за собой памяти у него проблемы, еще после него процесс дергает файлик, даже если инструкции отработали, пока Dispose или Close не пропишешь. (с FileStream, StreamWriter, StreamReader - тоже нужно это писать, но тут можно нормально использовать using`и.)
vtlstolyarov, А можно как то добавить ещё , чтобы допустим к названию файла , добавлялась переменная к примеру ASD. к примеру : string ASD = Textbox1.Text , т.е в название файла , который будет создан к примеру , будет добавлена переменная (содержание TextBox1) ?
vtlstolyarov, На своем случае, на случае знакомых, когда с помощью File.ReadAllText гетаешь инфу из бд (Её много), у тебя прод в стратосферу улетает, так что такой простой метод лучше самому написать и дописывать чем этим пользоваться.
V1RU, ну так зависит от того что тебе нужно, этот метод материализует текст из файла как список, если он не нужен как список (даже в моём случае он не нужен как список, потому что я сразу создаю из него хеш таблицу) то да -можно соптимизировать если использовать чтение из потока. Но фраза о том что он там чего-то не закрывает и не освобождает память - глупости.
OpenFileDialog fileDialog = new OpenFileDialog(); fileDialog.Filter = "Текстовый Файл (*.txt)|*.txt"; if (fileDialog.DialogResult == DialogResult.OK) { needText = File.ReadAllText(fileDialog.FileName); File.WriteAlltext(filepath, needText); } C# OpenFileDialog fileDialog = new OpenFileDialog(); fileDialog.Filter = "Текстовый Файл (*.txt)|*.txt"; if (fileDialog.DialogResult == DialogResult.OK) { needText = File.ReadAllText(fileDialog.FileName); File.WriteAlltext(filepath, needText); } Вот что-то на подобие этого