我一直在阅读,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类具有“多重安全检查” (请参阅此处),并且每次调用该类的静态成员时都会执行检查。FileInfoFile创建的实例时
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.