我一直在阅读,File
最好使用Class的静态方法在文件上执行少量任务,例如检查文件是否存在,FileInfo
如果要对文件执行许多操作,则应该使用Class的实例。一个特定的文件。
我理解这一点,可以盲目地使用它,但是我想知道为什么会有区别?
使它们适合不同情况的工作方式是什么?使这两个不同的类看起来以不同的方式执行相同操作有什么意义?
如果有人至少可以回答其中一个问题,那将很有帮助。
Answers:
通常,如果您要对文件执行单个操作,请使用File
该类。如果要对同一文件执行多项操作,请使用FileInfo
。
这样做的原因是由于访问文件时进行了安全检查。创建的实例时FileInfo
,检查仅执行一次。但是,每次使用静态File
方法时,都会执行检查。
File
和FileInfo
类的方法类似,但是它们的不同之处在于File类的方法是static
,因此与FileInfo
实例方法相比,您需要传递更多的参数。您需要这样做,因为它可以在特定文件上运行。例如,该
FileInfo.CopyTo()
方法对用于复制文件的目标路径采用一个参数,而该File.Copy()
方法对源路径和目标路径采用两个参数。”
参考文献
File
和FileInfo
。
File
班级与FileInfo
班级之间的主要区别在于
File
和FileInfo
类的两个成员都装饰有该[System.Security.SecurityCritical] and [System.Security.SecuritySafeCritical]
属性,但是与类相比,File
类具有“多重安全检查” (请参阅此处),并且每次调用该类的静态成员时都会执行检查。FileInfo
File
创建的实例时
FileInfo
,检查仅执行一次。
File
静态类型类,而FileInfo
实例类型类。FileInfo
类的成员,您需要创建一个实例,而在File
类中,您可以直接访问其成员而无需创建实例。FileInfo
实例方法而不是File
该类的相应静态方法会更有效。File
与FileInfo
类相比,类提供了更多的方法。Note: Either the SecurityCriticalAttribute attribute or the SecuritySafeCriticalAttribute attribute must be applied to code for the code to perform security-critical operations.