System.IO对C#中OS文件系统性能的影响

时间:2010-08-20 23:47:39

标签: c#

以下代码之间对OS的文件系统权限是否有任何影响或效果:

FileStream fs = new FileStream(@"file.dat", FileMode.Create, FileAccess.Write);
// and
FileStream fs = File.Create(@"file.dat");

PS:除了使用静态函数问题。

2 个答案:

答案 0 :(得分:3)

根据反射器,File.Create(path)只是:

new FileStream(path, FileMode.Create, FileAccess.ReadWrite, FileShare.None, 4096, FileOptions.None);

new FileStream(@"file.dat", FileMode.Create, FileAccess.Write)也获得4096缓冲区 - 所以不,它只是FileAccess.ReadWrite不同。

我不认为FileAccess.WriteFileAccess.ReadWrite好得多,因为它们都会锁定文件 - 但我可能错了。

发表评论:因为FileShare设置为None并且它是您希望它们正确的写入权限(=我不确定)并不多差异。但是,如果您希望Read访问权限new FileStream(path, mode, access)方法不同,则FileShare默认设置为Read。但是,在这种情况下,您想要创建一个文件,因此只读它没有多大意义; - )

答案 1 :(得分:2)

如果我没记错的话,File.Create("file.dat")只会打电话给new FileStream("file.dat", FileMode.Create, FileAccess.ReadWrite)