Witam,
Mój program ma za zadanie wyszukiwać pliki pdf w folderze "C:\Archiwum" i otwierać je. Jednakże folder "Archiwum" ma X podfolderów. chciałbym wyszukiwać we wszystkich podfolderach za wyjątkiem "C:\archiwum\Stare". Niestety ni jak nie wiem jak to napisać a już prawie jestem na ukończeniu programu (gdyby były jakieś uwagi co do kodu, jego optymalizacji także proszę o info).
Pozdrawiam
Kamil
namespace przegladarka
{
public partial class Form1 : Form
{
ResourceManager resources = new ResourceManager(typeof(Form1));
AxAcroPDFLib.AxAcroPDF pdf = new AxAcroPDFLib.AxAcroPDF();
string sPattern1 = @"^\w{3}-\w{2}-\w{2,3}$";
string sPattern2 = @"^\w{3}-\w{2}-\w{2,3}_\w{3}$";
string sPattern3 = @"^\d{4}-\d{3}$";
string Choise = null;
string FolderPath = @"H:/Archiwum/";
public Form1()
{
InitializeComponent();
}
public void Search()
{
DirectoryInfo dir = new DirectoryInfo(FolderPath);
FileInfo[] files = dir.GetFiles(Nazwa.Text + "*.pdf", SearchOption.AllDirectories);
Lista.Items.Clear();
if (files.Count() > 1)
{
Lista.Visible = true;
}
if (Lista.Items.Count == 0)
{
foreach (var item in files)
{
Lista.Items.Add(item);
}
}
}
public void ReadPDF()
{
try
{
DirectoryInfo dir = new DirectoryInfo(FolderPath);
FileInfo[] files = dir.GetFiles(Nazwa.Text + "*.pdf", SearchOption.AllDirectories);
pdf.Dock = DockStyle.Fill;
//pdf.Enabled = true;
pdf.Location = new Point(0, 0);
pdf.Name = "pdfReader";
pdf.OcxState = ((AxHost.State)(resources.GetObject("pdfReader.OcxState")));
//pdf.TabIndex = 0;
this.Controls.Add(pdf);
if (Choise != null)
{
pdf.LoadFile(files[0].DirectoryName + @"\" + Choise);
}
else
{
pdf.LoadFile(files[0].DirectoryName + @"\" + files[0].ToString());
}
pdf.setView("Fit");
pdf.Visible = true;
}
catch (Exception ex)
{
MessageBox.Show("Brak rysunku");
}
}
private void Nazwa_KeyDown(object sender, KeyEventArgs e)
{
Search();
if (e.KeyCode == Keys.Enter)
{
if (Regex.IsMatch(Nazwa.Text, sPattern1))
{
ReadPDF();
}
else if (Regex.IsMatch(Nazwa.Text, sPattern2))
{
ReadPDF();
}
else if (Regex.IsMatch(Nazwa.Text, sPattern3))
{
ReadPDF();
}
else
{
errorProvider1.SetError(Nazwa, "Zły format");
}
}
}
private void Nazwa_TextChanged(object sender, EventArgs e)
{
if (Regex.IsMatch(Nazwa.Text, sPattern1))
{
errorProvider1.Clear();
}
else if (Regex.IsMatch(Nazwa.Text, sPattern2))
{
errorProvider1.Clear();
}
else if (Regex.IsMatch(Nazwa.Text, sPattern3))
{
errorProvider1.Clear();
}
else
{
errorProvider1.SetError(Nazwa, "Zły format");
}
}
private void Lista_Click(object sender, EventArgs e)
{
try {
Choise = Lista.SelectedItem.ToString();
ReadPDF();
}
catch { }
}
private void Lista_KeyDown(object sender, KeyEventArgs e)
{
this.Lista.Focus();
this.Lista.Select();
if (e.KeyCode == Keys.Up)
{
this.Lista.SelectedIndex++;
}
if (e.KeyCode == Keys.Down)
{
this.Lista.SelectedIndex--;
}
}
}
}
```csharp