private static DateTime GetDateTime( string path, DateTimeAttrib attrib, bool utc ) { PathInternal.DllImport.WIN32_FILE_ATTRIBUTE_DATA fileData = new PathInternal.DllImport.WIN32_FILE_ATTRIBUTE_DATA(); if ( PathInternal.DllImport.GetFileAttributesExW( PathInternal.ConvertToUnicodePath( path ), 0, ref fileData ) ) { switch ( attrib ) { case DateTimeAttrib.Write: return PathInternal.FILETIMEToDateTime( fileData.ftLastWriteTime, utc ); case DateTimeAttrib.Access: return PathInternal.FILETIMEToDateTime( fileData.ftLastAccessTime, utc ); case DateTimeAttrib.Creation: return PathInternal.FILETIMEToDateTime( fileData.ftCreationTime, utc ); default: throw new Exception( "Unknown DateTimeAttrib in File.GetDateTime() function" ); } } else throw new IO.FileNotFoundException( path ); }