Pourquoi est-Fichier.Ouvert tellement mieux que la Fichier.Créer pour écraser un fichier existant?
C'est par rapport à cette autre SORTE question qui demande comment faire pour remplacer un fichier existant.
Haut réponse est simple:
FileStream file = File.Open("text.txt", FileMode.Create);
Ma réponse était:
FileStream fs = System.IO.File.Create(fileName);
Que quand j'ai écrit cette question, le pointage était de 14-0 en faveur de Open
.
Si les votes sont une indication de bonnes et de mauvaises solutions, cela me fait me demander un peu:
Est là quelque chose qui m'échappe dans
ces méthodes, qui en ferait
clairement beaucoup mieux de choisir
Open
surCreate
?
Vous devez vous connecter pour publier un commentaire.
Pour moi, je sais exactement ce que
File.Open("...", FileMode.Create)
n'parce que je peux survolerFileMode.Create
et il me dit qui est la volonté de créer un nouveau fichier à chaque fois.File.Create("...")
n'a pas un tel outil de pointe qui indique qu'il va faire.Il y a qu'un seul endroit où je sais que vous pourrait chercher une réponse à celui-ci: Réflecteur
Et il s'avère à la fois appel
new FileStream(...
avec un ensemble complet d'arguments!Bien, j'ai moi aussi répondu avec
Create
maisOpen
est vraiment la meilleure solution, comme vous indiquant que vous voulez ouvrir un fichier et avec leFileMode.Create
vous indiquant que vous souhaitez créer le fichier s'il n'existe pas déjà. Je pense que c'est assez clair.Tout d'abord, je pense que vous pourriez être la lecture de trop. J'ai, par exemple, j'ai tendance à voter la première bonne réponse, et la négligence tout autres réponses... donc y arriver en premier aide un peu.
Deuxième,
File.Open
se lit mieux queSystem.IO.File.Open
, même s'ils sont les mêmes.Troisième, Créer n'est pas comme sémantiquement pertinents que d'Ouvrir, à partir d'un point de vue de la lisibilité. Si vous voulez créer ET ouvrir un fichier, le premier est plus explicite.