Имам списъчно поле, което показва имената на файловете, които са отворени или с функция за плъзгане, или с OpenFileDialog, пътищата на файловете се съхраняват в списъка с имена за изпълнение, а списъчното поле показва само имената без пътища и разширения. Когато формулярът ми се затвори, съдържанието на плейлиста се записва в .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();
}
Това е кодът, използван за ПРОЧИТАНЕ на същия txt файл:
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 да може да ми помогне!