所以我正在制作一个媒体播放器,您可以用来收听预定义的广播电台并播放自己的音乐。
我已经可以加载歌曲并在播放列表中播放它们。
我设法将列表中的歌曲保存到文本文件中,这样您每次想要听到它时都不必再选择每首歌曲。
但我无法阅读它。
我有一个字符串[]文件和字符串[]路径。
用于保存文件名及其路径。
保存为:
RandomSongInPlaylist.mp3 || C:\其中\ \过你\ \有保存\它 ASecondSongInPlaylist.mp3 || C:\另一个\地图
现在我想读出它并在||之前保存名称在string []文件中 以及||之后的路径在string []路径中。
发布一些代码:
//将歌曲添加到播放列表时的代码
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");
}
}
当你按下打开的播放列表按钮时,有人可以帮助我再次阅读文本文件,读取所选的文本文件并保存||之前的所有内容作为文件中的文件和||之后的所有内容作为路径中的路径?
答案 0 :(得分:1)
从文件中读取所有行:
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的更多信息。