Как убрать часть (расширение файла) из строки?
private void Button1_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
string buf = textBox1.Text; //buffer 1
string buf2 = textBox2.Text; //buffer 2
string fn = (textBox3.Text + ".txt"); //file name
File.AppendAllText(fn, "────────────────────────" + "\n\n" + buf + "\n" + buf2 + "\n\n"); //AppendAllText best choise for this // WriteAllText // Create
StreamReader sr = new StreamReader(fn);
//string text = (sr.ReadToEnd());
//listBox1.Items.Clear();
//listBox1.Items.Add(text);
string text;
while ((text = sr.ReadLine()) != null)
{
listBox1.Items.Add(text);
//string[] It = new string[10];
//for (int i = 0; i < It.Length; i++) listBox1.Items.Add((text + i).ToString());
//text += 10;
}
sr.Close();
listBox1.SelectedIndex = listBox1.Items.Count - 1;
File.WriteAllText("config.conf", fn);
}
private void button2_Click(object sender, EventArgs e)
{
//config initialisation
//File.Create("config.conf");
StreamReader lr = new StreamReader("config.conf");
string text = lr.ReadLine();
textBox3.AppendText(text);
lr.Close();
}
}
Как убрать .txt из переменной text в конце?
Ответы (2 шт):
Например, так:
var text = "abcdefgh.txt";
var tt = text.Remove(text.LastIndexOf('.'));
Во-первых, убрать что-то из переменной нельзя, более того, из строки, на которую она указывает -- тоже, можно создать новую строку и поместить ссылку на нее в переменную. Во-вторых, если я правильно понял, Вы хотите прочитать из конфига имя файла и убрать из него расширение, это делается так:
text = Path.GetFileNameWithoutExtension(text);
Чтобы использовать класс Path, Вам надо подключить пространство имен System.IO:
using System.IO;
Почитать про класс Path можно здесь: https://docs.microsoft.com/en-us/dotnet/api/system.io.path.getfilenamewithoutextension?view=netframework-4.8
P.S. При использовании полученного значения в обработчике события Button1_Click, Вы приклеиваете расширение обратно, подумайте, действительно ли надо его убирать.
P.P.S. Для склеивания строк в данном случае стоит использовать не конкатенацию, а string.Format или, что еще лучше, интерполяцию строк, сравните с Вашим кодом:
File.AppendAllText(fn, $"────────────────────────\n\n{buf}\n{buf2}\n\n");