private void timer1_Tick(object sender, EventArgs e)
{
DirectoryInfo dir1 = new DirectoryInfo(@"C:\Users\Chocolade\AppData\Local\SatellitesImagesDownloads\SatellitesImagesDownloads\Countries\Israel\");
fi = dir1.GetFiles("*.gif");
foreach (FileInfo finfo in fi)
{
if (fi.Length > 0 && finfo.Length > 0)
{
timer1.Enabled = false;
pictureBox1.Load(finfo.FullName);
listView1.Items[0].Checked = true;
}
}
}
이것은 이스라엘 디렉토리에서 잘 작동합니다. 그것이 pictureBox1
에로드하고이 항목에 대한 listView1
에 CheckBox
을 확인하는 것 이스라엘 디렉토리에 GIF 파일을 발견하면먼저 특정 디렉토리 gif 파일을 검색 한 다음 나머지 파일을 계속 검색 할 수 있습니까?
는 타이머 간격은 100
로 설정됩니다.
하지만 지금은 바꿔서 모든 하위 디렉토리를 검색하지만 처음에는 이스라엘 만 검색하도록하고 싶습니다. 일단 이스라엘을 발견하고 pictureBox1
에 GIF를로드하고 CheckBox
을 확인한 다음 다른 모든 하위 디렉토리를 검색하고 하위 디렉토리에 gif 파일이있는 경우 listView1
에있는 확인란을 선택합니다.
listView1
의 항목은 해당 국가의 이름입니다.
여기에서 계속하는 방법을 모르겠다.
private void timer1_Tick(object sender, EventArgs e)
{
DirectoryInfo dir1 = new DirectoryInfo(@"C:\Users\Chocolade\AppData\Local\SatellitesImagesDownloads\SatellitesImagesDownloads\Countries\");
fi = dir1.GetFiles("*.gif", SearchOption.AllDirectories);
foreach (FileInfo finfo in fi)
{
if (fi.Length > 0 && finfo.Length > 0)
{
timer1.Enabled = false;
pictureBox1.Load(finfo.FullName);
listView1.Items[0].Checked = true;
}
}
}
왜 타이머가 필요한가요? 결과를 찾을 때'Invoke '를 사용하여 UI를 업데이트해야하는 백그라운드 스레드에서 검색하는 것 같습니다. –
디렉토리에 많은 파일이없는 경우 : 루트 디렉토리와 하위 디렉토리에서 모든 gif 파일 이름을 검색하고 편리하게 파일 이름 목록을 정렬 한 다음 타이머를 시작하여 목록의 다음 항목을 표시하고 증가분을 표시하십시오 다음 항목의 인덱스는 처음에 0으로 설정 됨). – Graffito
둘 이상의 * .gif 파일을 찾으면 루프가 마지막으로로드합니다. 이것은 의도 된 것입니까? –