Afin d'effectuer ce contrôle, le framework .Net propose l'utilisation des classes File et/ou FileInfo. Mais l'obtention de ce résultat peut parfois être très long et particulièrement trop long pour moi :). Dans cet article nous allons détailler une méthode qui peut être utilisée dans certains cas pour raccourcir ce délai.
Dans un premier temps, voici un exemple d'utilisation de ces deux classes:

Très simple en terme de ligne de code comme on peut le voir ! Cependant cela peut prendre beaucoup de temps à l'éxecution. C'est particulièrement le cas lorsque le fichier en question est sur un disque réseau: si le disque est innacessible, il faut attendre un time-out pour avoir l'indication que le fichier n'existe pas.
Ce Time-out est parfois trop long pour l'utilisateur et la technique que je présente permet de le configurer en utilisant astucieusement la classe Task du framework .Net 4.0. Voici la méthode en question :
private static bool VerifyFileExists(Uri uri, int timeout = 200){ var task = new Task<bool>(() => { var fi = new FileInfo(uri.LocalPath); return fi.Exists; }); task.Start(); return task.Wait(timeout) && task.Result;} |





