내 폴더를 나열하기 위해이 글을 쓰려고했는데, 추가 부분이 작동하지 않고 전체 내용을 다시 씁니다. 나는 그 응용 프로그램을 종료하지 않고 뭔가를 나열하려고하면 각 루프의 끝에 close()를 사용했기 때문에 "파일이 사용 중이다"라는 오류가 발생합니다.C# close()와 함께 사용중인 파일이 작동하지 않습니다.
나는 거의 모든 Microsoft 문서와 여기에서 많은 게시물을 확인했지만 내 대답을 찾을 수 없습니다.
The Picture that shows the Error I get
미리 감사!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace Anime_Lister
{
public partial class Anime0Lister : Form
{
public void Appen()
{
using (System.IO.StreamWriter file = new System.IO.StreamWriter(path0save.Text, true))
{
DirectoryInfo directory = new DirectoryInfo(path0tb.Text);
DirectoryInfo[] directory0Arr = directory.GetDirectories();
foreach (DirectoryInfo dir in directory0Arr)
{
String Parent = Convert.ToString(dir.Parent);
String Name = Convert.ToString(dir.Name);
String Root = Convert.ToString(dir.Root);
File.AppendAllText(path0save.Text, Parent);
File.AppendAllText(path0save.Text, " || ");
File.AppendAllText(path0save.Text, Name + System.Environment.NewLine);
File.AppendAllText(path0save.Text, Root + System.Environment.NewLine);
}
}
}
public void Writer()
{
using (System.IO.StreamWriter file = new System.IO.StreamWriter(path0save.Text))
{
DirectoryInfo directory = new DirectoryInfo(path0tb.Text);
DirectoryInfo[] directory0Arr = directory.GetDirectories();
foreach (DirectoryInfo dir in directory0Arr)
{
String Parent = Convert.ToString(dir.Parent);
String Name = Convert.ToString(dir.Name);
String Root = Convert.ToString(dir.Root);
file.Write(Parent);
file.Write(" || ");
file.WriteLine(Name);
file.WriteLine(Root);
}
}
}
public void Browser()
{
FolderBrowserDialog address = new FolderBrowserDialog();
if (address.ShowDialog() == System.Windows.Forms.DialogResult.OK)
path0tb.Text = address.SelectedPath;
}
public void Browser2()
{
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
path0save.Text = saveFileDialog1.FileName;
}
}
public Anime0Lister()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//_____________________________________________________________List
{
try
{
if (existing0file.Checked == true)
{
Appen();
}
else
{
Writer();
}
}
catch (Exception Fail)
{
MessageBox.Show(Fail.Message);
}
}
}
}
}
당신은 잘못된 방법을 사용하고 있습니까? "File.AppendAllText"가 아니라 "file.Write"입니까? –
다른 함수에서는 file.appenedalltext –
을 사용하는 경우 그 함수에 "file"을 전달해야합니다. 그렇지 않으면 파일에 어떻게 추가하고 싶습니까? 아마 당신은 매번 새로운 파일을 만듭니다. –