读出文本文件并将行保存在 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。
所以我正在制作一个媒体播放器,您可以用它来收听预定义的广播电台并播放您自己的音乐。
我已经可以加载歌曲并在播放列表中播放它们了。
我设法将列表中的歌曲保存到一个文本文件中,这样您就不必在每次想听时都重新 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。