new FileInfo(path).Name与Path.GetFileName(path)
哪一个更好用,为什么? 我的意思是这两个命令在哪些方面有所不同? 性能,可读性,……
new FileInfo(path).Name
或Path.GetFileName(path)
简单地说,您不必为使用Path.GetFilename()创建新对象,它将表现得更好。
这是两者的比较:
码:
Path.GetFileName("G:\\u.png")
IL:
IL_0000: ldstr "G:\u.png" IL_0005: call System.IO.Path.GetFileName
码:
new FileInfo("G:\\u.png").Name
IL:
IL_0000: ldstr "G:\u.png" IL_0005: newobj System.IO.FileInfo..ctor IL_000A: callvirt System.IO.FileSystemInfo.get_Name
我建议使用Path.GetFilename(),因为它只是解析路径并返回文件名。 另一方面, FileInfo
对象将检查执行的代码是否有权访问相对较慢的指定文件。
Performancewise Path.GetFilename()将胜过其他版本,因为它是静态的。 您的第一个版本创建了一个必须实例化并进行垃圾回收的对象。
可读性:Path.GetFilename()显然赢得了恕我直言!
我认为,他们找出这个名字的方式并没有多大差别。