Программа должна находить все Jpg файлы и копировать их в локальную директорию ,но как только она натыкается на туже папку где лежит программа, возникает ошибка . как пропустить эту папку ?
PHP код:
using System;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string a = "D:\\";
DirectoryInfo b = new DirectoryInfo(a);
try
{
DirectoryInfo[] test = b.GetDirectories();
}
catch (UnauthorizedAccessException)
{
Environment.Exit(0);
}
Find f = new Find();
f.FindFiles(a, "*.jpg");
Console.ReadKey();
}
}
public class Find
{
public void FindInDir(DirectoryInfo dir, string pattern, bool recursive)
{
try
{
foreach (FileInfo file in dir.GetFiles(pattern))
{
Console.Out.WriteLine(file.FullName);
string F = Environment.CurrentDirectory;
File.Copy(file.FullName, F +"\\"+ file, true);
}
}
catch (UnauthorizedAccessException)
{
}
if (recursive)
{
DirectoryInfo[] subdir = dir.GetDirectories();
int i;
int l = subdir.Length;
string F = Environment.CurrentDirectory;
for (i = 0; i < l; i++)
{
try
{
FindInDir(subdir[i], pattern, recursive);
}
catch (UnauthorizedAccessException)
{
При поиске пропускать текущую папку. Для этого нужно добавить условие в самое начало функции FindInDir:
if (dir.FullName == Environment.CurrentDirectory)
return;
И лучше посмотреть в отладчике, нет ли на концах этих строк обратного слеша, чтобы условие выполнялось корректно.