2015-02-08 2 views
0

У меня есть программа, которая хранит дневник для каждого дня в текущем месяце, проблема заключается в том, что когда я начинаю новый месяц, все встречи за последний месяц все еще существуют, потому что они сохраняются в текстовом файле, как этотУдалить файл, если он был создан в прошлом месяце

3, 8.30, Стоматолог, описание

Первое поле над ним день, как вы можете видеть месяц нет. Код ниже - это то, что я пробовал, он компилируется без ошибок.

Мой вопрос будет ли это работать? Я не знаю, как это проверить, потому что любой файл, который я создаю сейчас, будет новым файлом, и у меня нет старого файла?

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

bool checkFileExists(string file) 
    { 
    if (!System.IO.File.Exists(file)) 
    { 

     using (FileStream fs = File.Create(file)) 
     { 
      // File created. 
      return true; 
     } 
    } 

    else 
    { 
      FileInfo fi = new FileInfo(file); 
      if (fi.CreationTime < DateTime.Now.AddMonths(-1)) 
       fi.Delete(); 
    } 
      // File exists. 
      return true; 
    } 
+2

Чтобы проверить, если код работает правильно, вы всегда можете изменить время создания тестового файла: http://stackoverflow.com/questions/ 9589677/how-do-i-change-file-creation-time-in-c – rsbarro

+0

Попробуйте изменить оператор 'if' из' if (fi.CreationTime Aradmey

+0

thats cool, я не знал, что это было возможно, спасибо – Tom

ответ

0

Попробуйте использовать File.GetCreationTime.

Так что, ваш код из выше он стал бы:

bool checkFileExists(string file) 
{ 
if (!System.IO.File.Exists(file)) 
{ 
    using (FileStream fs = File.Create(file)) 
    { 
     // File created. 
     return true; 
    } 
} 
else 
{ 
     if (File.GetCreationTime(file) < DateTime.Now.AddMonths(-1)) 
      File.Delete(file); 
} 
// File exists. 
return true; 
} 
+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. –

+0

@BrentWorden достаточно честный, обновленный ответ. – shortspider

Смежные вопросы