Время в секундах с момента последнего редактирования файла

Enigma

Client
Регистрация
16.06.2017
Сообщения
187
Благодарностей
31
Баллы
28
Задача - вычислить, сколько прошло времени время в секундах с момента последнего редактирования файла.

Собственно, время редактирования можно получить так:


Код:
var time = new System.IO.FileInfo(project.Variables["путь_к_файлу"].Value).LastWriteTime;
return time;
Возвращается дата и время в формате 05.09.2018 18:12:45

Ее, наверное, нужно конвертнуть и вычесть из {-Environment.TickCount-} ?
Но что-то знаний не хватает, как это правильно и красиво сделать.

Прошу помощи!
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
C#:
string path = @"тут полный путь к файлу";
DateTime time= new System.IO.FileInfo(path).LastWriteTime;

TimeSpan diff = DateTime.Now - time;
return Convert.ToInt32(diff.TotalSeconds);
UPD: Исправил ошибку в коде.
 
Последнее редактирование:
  • Спасибо
Реакции: TeslaCo и Enigma

Enigma

Client
Регистрация
16.06.2017
Сообщения
187
Благодарностей
31
Баллы
28
Ошибка в действии "CS0103" "The name 'time' does not exist in the current context". [Строка: 3; Cтолбец: 32]
 

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 994
Благодарностей
787
Баллы
113
C#:
var time = new System.IO.FileInfo(project.Variables["путь_к_файлу"].Value).LastWriteTime;
return DateTime.Now.Subtract(time).TotalSeconds;
 
  • Спасибо
Реакции: Enigma и nicanil

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Ошибка в действии "CS0103" "The name 'time' does not exist in the current context". [Строка: 3; Cтолбец: 32]
Да, была ошибка - после того как сюда запостил сообщение, то переименовал переменную в одном месте, а во втором забыл:bk:
Отредактировал предыдущее сообщение, теперь работает.
 
  • Спасибо
Реакции: Enigma

Enigma

Client
Регистрация
16.06.2017
Сообщения
187
Благодарностей
31
Баллы
28
Всем огромное спасибо! :az:
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Всем огромное спасибо! :az:
На мой взгляд ещё стоит проверять существование файла. Т.к. только что тестил код, указал в пути к файлу бредостроку (естественно я забыл об этом) и получил ошибку с не очевидным, для меня, описанием. Легко её найти удалось только потому, что в проекте один кубик и в этом кубике всего 4 строки.

C#:
string path = @"path\to\file";
if (!File.Exists(path))
{
    throw new Exception("Не найден файл по пути - " + path);
}
DateTime time= new System.IO.FileInfo(path).LastWriteTime;
TimeSpan diff = DateTime.Now - time;
return Convert.ToInt32(diff.TotalSeconds);
Данный код будет выходить по красной ветке, если файл не найден.
 
  • Спасибо
Реакции: Dorian_Gray и Enigma

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)