Eh bien, j'ai été l'écriture de pilotes de système de fichiers pour 20 ans et serait de dire que Rex est correct. Générer un guid est beaucoup, beaucoup plus rapide, car il nécessite beaucoup moins de ressources que la recherche d'un nom de fichier unique. GetTempFileName crée un fichier, ce qui signifie qu'il doit appeler à travers l'ensemble de la pilote du système de fichiers de la pile (qui sait combien d'appels qui seraient et un commutateur en mode noyau.) GetRandomFileName sonne comme il est plus rapide, cependant je ne ferais confiance le GUID appel à être encore plus rapide. Ce que les gens ne réalisent pas est que même en testant l'existence d'un fichier nécessite un appel complet par le biais de la pile de pilotes. Il en résulte fait dans un cadre ouvert, obtenir les attributs et les proches (qui est au moins 3 appels, selon le niveau.) En réalité, c'est un minimum de 20 appels de fonction et d'une transition vers le mode noyau. GUID de la garantie de l'unicité est assez bon pour la plupart des besoins.
Ma recommandation est de générer le nom et créer un fichier seulement si il n'existe pas. Si elle le fait, lancer une exception et de l'attraper, puis générer un nouveau guid et essayez de nouveau. De cette façon, vous avez aucune chance de faire des erreurs et peut dormir tranquille la nuit.
Sur une note de côté, la vérification des erreurs est tellement surfait. Le Code doit être conçu de manière à bloquer si les hypothèses sont fausses, ou de capturer des exceptions et de traiter avec elle alors. Son beaucoup plus vite à la push et pop et l'adresse sur la pile d'exception, que de vérifier à chaque fois sur chaque fonction pour une erreur.