这与其他SO question有关,它询问如何覆盖现有文件。
最佳答案是:
FileStream file = File.Open("text.txt", FileMode.Create);
我的回答是:
FileStream fs = System.IO.File.Create(fileName);
当我写这个问题的时候,这个数字是14-0支持Open
。
如果投票表明好与坏的解决方案,这让我有点疑惑:
我是否缺少一些东西 这些方法会成功 显然,选择要好得多
Open
超过Create
?
答案 0 :(得分:6)
对我来说,我确切知道File.Open("...", FileMode.Create)
的确是什么,因为我可以将鼠标悬停在FileMode.Create
上,它告诉我每次都会创建一个新文件。 File.Create("...")
没有此类工具提示,表明它会执行此操作。
答案 1 :(得分:2)
我知道只有一个地方可以找到这个答案:Reflector
事实证明,调用new FileStream(...
都有一整套参数!
答案 2 :(得分:0)
好吧,我也回答了Create
,但是Open
确实是更好的解决方案,因为您表示要打开文件并且FileMode.Create
表明您希望如果文件尚不存在,则创建该文件。我认为这很清楚。
答案 3 :(得分:0)
首先,我认为你可能正在阅读太多内容。例如,我倾向于对第一个正确的答案进行投票,而忽略了任何进一步的答案......所以先到达那里会有所帮助。
其次,File.Open
读取的内容优于System.IO.File.Open
,即使它们是相同的。
第三,从可读性的角度来看,Create不像Open那样具有语义相关性。如果要创建AND打开文件,则第一个更明确。