以下代码之间对OS的文件系统权限是否有任何影响或效果:
FileStream fs = new FileStream(@"file.dat", FileMode.Create, FileAccess.Write);
// and
FileStream fs = File.Create(@"file.dat");
PS:除了使用静态函数问题。
答案 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.Write
比FileAccess.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)
。