public string CalculateETag( FileInfo file )
{
var material = new StringBuilder();
material.AppendLine( file.FullName );
material.AppendLine( file.LastWriteTime.Ticks.ToString() );
material.AppendLine( file.Length.ToString() );
var hash = m_hashAlgorithm.ComputeHash( Encoding.UTF8.GetBytes( material.ToString() ) );
return ETagUtil.CreateWeakETag( new string( hash.SelectMany( b => b.ToString("x2").ToLower() ).ToArray() ) );
}