读出文本文件并将行保存在 String[] 中

Reading out textfiles and saving the lines in String[]

所以我正在制作一个媒体播放器,您可以用它来收听预定义的广播电台并播放您自己的音乐。

我已经可以加载歌曲并在播放列表中播放它们了。

我设法将列表中的歌曲保存到一个文本文件中,这样您就不必在每次想听时都重新 select 每首歌曲。

但是我读起来有困难。

我有一个 string[] 个文件和一个 string[] 个路径。

用于保存文件名及其路径。

保存为:

RandomSongInPlaylist.mp3||C:\where\ever\you\have\saved\it ASecondSongInPlaylist.mp3||C:\Another\map

现在我要读出来保存||前的名字在字符串 [] 文件中 和 || 之后的路径在字符串 [] 路径中。

我会 post 它的一些代码:

//添加歌曲到播放列表时的代码

private void btnAfspeellijst_Click(object sender, EventArgs e) //button for adding songs

    {
        Playlist.Items.Clear();
        Played.Items.Clear(); //this is for shuffle modus, ignore it.
        OpenFileDialog openFileDialog1 = new OpenFileDialog();
        openFileDialog1.Filter = "Music Files (*.mp3, *.wav, *.wmv, *.wma *.mp4, *.wv, *.aac)|*.mp3; *.wav; *.wmv; *.wma; *.mp4; *.wv; *.aac|All Files (*.*)|*.*";
        openFileDialog1.Multiselect = true;
        if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            try
            {
                files = openFileDialog1.SafeFileNames;
                paths = openFileDialog1.FileNames;
                for (int i = 0; i < files.Length; i++)
                {
                    Playlist.Items.Add(files[i]);
                }
                Playlist.SelectedIndex = 0;
            }
            catch
            {
                MessageBox.Show("Voeg een nummer toe"); //add a nummer, for when you dont give numbers
            }
        }            
    }

//当您将播放列表保存为文本文件时。

private void btnOpslaan_Click(object sender, EventArgs e) //将其保存在文本文件中的按钮

    {
        var saveFile = new SaveFileDialog();
        saveFile.Filter = "Text (*.txt)|*.txt";
        if (saveFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            int i = 0;
            using (var sw = new System.IO.StreamWriter(saveFile.FileName, false))
                foreach (var item in files)
                {
                    sw.Write(item.ToString() + "||" + paths[i].ToString()+Environment.NewLine);
                    i++;
                }
            MessageBox.Show("Success");
        }
    }

谁能帮我再次读出文本文件,当您按下打开播放列表按钮时,读出 selected 文本文件并保存 || 之前的所有内容作为文件中的文件以及 || 之后的所有内容作为路径中的路径?

从文件中读取所有行:
MSDN ReadAllLines

然后您可以使用 Split() 解析数据:

List<string> files = new List<string>;

foreach (string line in lines[]) 
{
   files.Add(line.Split("||")[0]; 
   //... same code for paths
   // split will return file in element 0 and paths in element1
}

旁注:
这样的代码会更容易维护:

private void btnAfspeellijst_Click(object sender, EventArgs e)
{
   mp3Files.OpenList();
}

...以及您项目中的某处

public class MusicFilesHandler
{
    public static OpenList()
    {
       //... code to open file
    }
}   

分离逻辑和视图在编程中被普遍认为是个好主意。
详细了解 MVC 或 MVVM。