나는 dragDrop 기능 또는 OpenFileDialog로 열리는 파일의 이름을 표시하는 목록 상자를 가지고 있으며 파일 경로는 List라는 재생 목록에 저장되며 목록 상자에는 경로 및 확장명이없는 이름 만 표시됩니다. 양식을 닫으면 재생 목록 콘텐츠가 .txt 파일로 저장됩니다. 응용 프로그램을 다시 열면 텍스트 파일의 내용이 목록 상자와 재생 목록에 다시 저장됩니다. 그러나 양식을 다시 연 후 새 파일을 추가 할 때 마지막 파일과 최근에 추가 된 파일 사이에 빈 줄이 표시되는 이유를 알 수 없습니다.목록 <string>의 내용을 C#의 텍스트 파일에 저장하는 방법은 무엇입니까?
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;
}
}
:이 같은 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 파일에서 재생 목록의 내용 (목록)를 작성하는 데 사용할 코드입니다 목록 상자 및 재생 목록에 파일을 추가하는 데 사용되는 코드는 다음과 같습니다.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 커뮤니티가 나를 도울 수 있기를 바랍니다! 모든
그래서 나는 다음과 같이 재생 목록의 내용을 작성해야합니다 :'str.Write (s)'네 말이 맞습니까? – ChrisCreateBoss
필요는 없습니다. 이상적으로는 빈 줄을 쓰는 것을 피하십시오. 그리고 지금까지는 파일의 마지막 줄이 하나 있습니다. 따라서 줄 단위로 작성하는 재생 목록을 반복하는 경우 마지막 재생 목록 항목이 아닌 경우 새 줄을 추가해야합니다. 일반적으로'Write (s)'를 사용하면 여러 재생 목록 항목에 대해 작동하지 않습니다. 그냥 시도하고 디버그하면 볼 수 있습니다. 내 견해로는 비록 나의 예와 비슷한 것을하는 것이 안전한 읽기를하는 것이 낫다. 응용 프로그램이 소스를 작성한 경우에도 일반적으로 소스를 신뢰해서는 안됩니다. –
안전한 읽기 방법을 사용했고 양식이 열리지 않았습니다. 지금 무엇이 잘못 될 수 있습니까? – ChrisCreateBoss