public static bool Exists( [NotNull] this FileInfo fileInfo, bool caseSensitive )
{
if ( fileInfo == null )
throw new ArgumentNullException( "fileInfo" );
if ( caseSensitive == MonoCompat.IsCaseSensitive ) {
return fileInfo.Exists;
} else {
DirectoryInfo parentDir = fileInfo.Directory;
StringComparison sc = ( caseSensitive ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase );
return parentDir.GetFiles( "*", SearchOption.TopDirectoryOnly )
.Any( file => file.Name.Equals( fileInfo.Name, sc ) );
}
}