Фильтрация .zip файла из массива FileInfo - PullRequest
0 голосов
/ 22 февраля 2012

У меня есть массив FileInfo, который возвращает мне 15 файлов и одну папку ".zip". Мне в основном нужно попробовать и каким-то образом отфильтровать этот ".zip" файл из массива. Любая помощь будет высоко ценится, но, кажется, я просто бьюсь головой о кирпичную стену! Вот код, в который я пытаюсь внести это;

public List<FileInfo> getInfo(bool recursive, int ageDays)
{
  //Declarations
  DirectoryInfo di = new DirectoryInfo(CurrentFilePath);
  FileInfo[] fi = new FileInfo[0];
  List<FileInfo> results = new List<FileInfo>();
  fileResults = new List<Files>();
  DateTime ageInDays = DateTime.Now.AddDays(-ageDays);

  //Checks for recursive search
  if (recursive)
  {
    try
    {
      fi = di.GetFiles("*.*", SearchOption.AllDirectories);
    }
    catch (Exception)
    {
    }
  }
  else
  {
    try
    {
      fi = di.GetFiles();
    }
    catch (Exception)
    {
    }
  }

  for (int i = 0; i < fi.Length; i++)
  {
    if (fi[i].LastWriteTime < ageInDays)
    {
      results.Add(fi[i]);
    }
  }
  return results;
}

Заранее спасибо!

Ответы [ 4 ]

1 голос
/ 22 февраля 2012

Вы пробовали:

for (int i = 0; i < fi.Length; i++)
        {
            if (fi[i].LastWriteTime < ageInDays && fi[i].Extension != ".zip")
            {
                results.Add(fi[i]);
            }
        }
1 голос
/ 22 февраля 2012

Лучше всего изменить свой код:

for (int i = 0; i < fi.Length; i++)
{
    if ((fi[i].LastWriteTime < ageInDays) && fi.Extension.ToUpper() != ".ZIP")
    {
        results.Add(fi[i]);
    }
}

Или используйте LINQ:

results = (from fi in results
           where fi.Extension.ToUpper() != ".ZIP"
           select fi).ToList<FileInfo>();
0 голосов
/ 22 февраля 2012

Вы также можете использовать лямбду, чтобы проверить расширение вашего файла

var files = di.GetFiles().Where(file => !file.FullName.EndsWith(".zip"));
0 голосов
/ 22 февраля 2012

попробуйте это:

      _files = Directory.GetFiles(FTPOutputDirectory);
       foreach (string fi in _files)
         {
           string fi = Path.GetExtension(f);

            if (fi.ToUpper() != ".ZIP" )
             {
                // yourWork
             }
         }
...