나는 프로젝트 작업을하고 있으며 이전에는 블로그 기사가 폴더의 텍스트 파일이었습니다. 이제 SQL Server 2008 서버의 데이터베이스에 아티클 내용을 저장하려고합니다.8KB가 넘는 파일이있는 DirectoryInfo GetFiles()
지금은 레코드를 삽입하지 않고 파일 이름을 가져 오려고합니다. 지금은 끝내기까지 15 분 이상 걸립니다. 이것은 Windows Form입니다.
private void LoadButton_Click(object sender, EventArgs e)
{
var dirInfo = new DirectoryInfo(@"P:\op\articles");
foreach (var currFile in dirInfo.GetFiles())
{
using (StreamReader sr = new StreamReader(currFile.FullName))
{
OutputTextBox.Text += currFile.FullName + "\r\n";
}
}
}
나는 단지 잡고 처리 할 1K 기사는 말을 한 후 삭제 뭔가를 할 수 어쨌든 거기 : 여기
내가 지금 가지고있는 무엇인가? 이 작업을보다 빠르게 수행 할 수있는보다 효율적인 방법이 있습니까?
하나의 디렉토리에 8k 개의 파일을 넣을 수 있습니까? 아마 당신은 각각에있는 몇몇 파일을 가진 다수 하위 디렉토리를 만들 수 있습니까? – ashlar64
왜 각 파일에 대해 StreamReader를 초기화합니까? 그냥 궁금해서. –
IEnumerable을 사용하여 한 번에 8000 개의 청크를 가져올 수 있으므로 한 번에 100 개를 처리 할 수 있습니다. –
confusedandamused