У меня есть список, в котором отображаются имена файлов, которые открываются либо с помощью функции перетаскивания, либо с помощью OpenFileDialog, пути к файлам хранятся в списке воспроизведения с именем List, а в списке отображаются только имена без путей и расширений. Когда моя форма закрывается, содержимое списка воспроизведения сохраняется в файле .txt. Когда я снова открываю свое приложение, содержимое текстового файла снова сохраняется в списке и списке воспроизведения. Но когда я добавляю новые файлы после повторного открытия формы, я не знаю, почему она оставляет пустую строку между последними файлами и недавно добавленными.
Это код, который я использую для ЗАПИСИ содержимого списка воспроизведения (списка) в txt-файле:
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
if(listBox1.Items.Count > 0)
{
StreamWriter str = new StreamWriter(Application.StartupPath + "/Text.txt");
foreach (String s in playlist)
{
str.WriteLine(s);
}
str.Close();
}
Это код, используемый для ПРОЧТЕНИЯ того же текстового файла:
private void Form1_Load(object sender, EventArgs e) //Form Load!!!
{
FileInfo info = new FileInfo(Application.StartupPath + "/Text.txt");
if(info.Exists)
{
if (info.Length > 0)
{
System.IO.StreamReader reader = new System.IO.StreamReader(Application.StartupPath + "/Text.txt"); //StreamREADER
try
{
do
{
string currentRead = reader.ReadLine();
playlist.Add(currentRead);
listBox1.Items.Add(System.IO.Path.GetFileNameWithoutExtension(currentRead));
} while (true);
}
catch (Exception)
{
reader.Close();
listBox1.SelectedIndex = 0;
}
}
else
{
File.Delete(Application.StartupPath + "/Text.txt");
}
}
else
{
return;
}
}
Код, используемый для добавления файлов в список и плейлист:
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "Select File(s)";
ofd.Filter = "Audio Files (*.mp3, *.wav, *.wma)|*.mp3|*.wav|*.wma";
ofd.InitialDirectory = "C:/";
ofd.RestoreDirectory = false;
ofd.Multiselect = true;
ofd.ShowDialog();
foreach (string s in ofd.FileNames)
{
listBox1.Items.Add(Path.GetFileNameWithoutExtension(s));
playlist.Add(s);
}
listBox1.SelectedIndex = 0;
Вот что я получаю, когда добавляю новые файлы после повторного открытия формы:
Заранее спасибо, надеюсь, сообщество StackOverflow сможет мне помочь!