哪个更好用,为什么?我的意思是这两个命令在哪些方面不同以及如何不同?性能、可读性……newFileInfo(path).Name或Path.GetFileName(path) 最佳答案 因为您不必为使用Path.GetFilename()创建新对象,所以性能会更好。这是两者的比较:代码:Path.GetFileName("G:\\u.png")IL:IL_0000:ldstr"G:\u.png"IL_0005:callSystem.IO.Path.GetFileName代码:newFileInfo("G:\\u.png").Name
我希望我能够解决这个问题,但我终其一生都无法理解为什么这段代码无法正常运行并允许将重复的条目添加到列表中。永远不会满足if语句条件,即使我从同一位置拖入相同的文件也是如此。我不明白为什么“包含”方法不匹配它们。publicclassForm1:Form{privateListdragDropFiles=newList();privatevoidForm1_DragDrop(objectsender,DragEventArgse){try{if(e.Data.GetDataPresent(DataFormats.FileDrop)){string[]files=(string[])e.D
我目前正在测试将文本数据记录到文件中的不同方法的性能。似乎当我多次打开/写入/关闭时,使用的扩展会影响性能。(.txt和.log快约7倍)使用的代码:privatestaticvoidTestWriteSpeed(FileInfofile){Stopwatchwatch=newStopwatch();watch.Start();for(inti=0;i结果:abc.txt00:00:08.3826847为什么会这样? 最佳答案 看起来另一个应用程序或进程正在读取或监视正在写入的文件并出于性能原因忽略.txt或.log文件。为什么?因
我尝试使用路径很长的DirectoryInfo、FileInfo。我尝试使用\\?\c:\long路径(我在fileInfo和DirectoryInfo中得到了非法字符)我尝试使用file://c:/long路径(我不支持uri)我可以在路径或其他地方使用~吗?我读了这个post但我想使用另一种调用API的方式。还有其他解决方案吗?微软有篇文章使用\\?在文件路径linktext问题是我如何处理很长的路径,以及路径的DirectoryInfo和FileInfo是否超过256个字符 最佳答案 图书馆再次可用onthislocation
好吧,标题说明了一切。将文件名传递给方法时,我应该使用FileInfo对象还是普通文件名(字符串)?为什么我更喜欢其中之一?我的一些同事喜欢这样写方法:无效导出(文件信息文件信息)是否优于:voidExport(字符串文件名)谢谢! 最佳答案 我通常只使用string-在大多数情况下它更简单。否则,您可能首先从字符串创建一个新的FileInfo。如果您正在创建该方法,您始终可以提供重载以允许这两种方法。当然,如果您知道要在何处调用它,您通常FileInfo而不是string,那是另一回事。我可以理解您同事的观点-在某些方面,File
我如何使用(避免PathTooLongException):System.IO.FileInfo路径超过260个字符?是否有类似的类/方法返回与FileInfo类相同的结果? 最佳答案 据我所知,这并非易事。虽然可以像phoenix提到的那样对流使用变通方法,但是文件名处理是不可能的。在内部,每个处理文件名的类都会检查长文件名。您可以实例化FileInfo并使用反射填充私有(private)成员(但不推荐这样做)并使FileInfo指向具有长路径的文件。但是,当您尝试使用此对象时,您仍然会收到PathTooLongException
是否可以在C#中完全不使用System.IO.FileInfo来获取文件的大小?我知道您可以分别使用Path.GetFileName(yourFilePath)和Path.GetExtension(yourFilePath)来获取名称和扩展名等其他内容,但显然不是文件尺寸?有没有另一种方法可以在不使用System.IO.FileInfo的情况下获取文件大小?这样做的唯一原因是,如果我是正确的,FileInfo会获取比我真正需要的更多的信息,因此如果我唯一需要的是文件的大小,则收集所有这些FileInfo需要更长的时间。有没有更快的方法? 最佳答案
使用File对象的静态方法与创建新的FileInfo对象并调用这些方法有很大区别吗? 最佳答案 唯一的区别是File必须解析指定的路径(假设它是相对的),而FileInfo应该已经有解析的路径。 关于c#-File.Delete()与FileInfo.Delete(),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7773122/
我必须编写一个应用程序,它将比较两个文件的修改日期。这些文件是Excel工作簿。第一个文件位于本地驱动器上,第二个文件位于LAN网络上。任何提示,如何编写这个应用程序?无需打开这些文件,只需从文件属性中查看日期即可。 最佳答案 System.IO.FileInfofile1=newSystem.IO.FileInfo(file1Name);System.IO.FileInfofile2=newSystem.IO.FileInfo(file2Name);if(file1.LastWriteTime!=file2.LastWriteTi
我正在跟踪一个文件夹及其文件长度,至少其中一个文件仍在写入。我必须不断更新我用于其他目的的每个文件长度的记录。Update方法每15秒调用一次,如果文件长度与上次更新中确定的长度不同,则更新文件的属性。更新方法看起来像这样:vardirectoryInfo=newDirectoryInfo(archiveFolder);vararchiveFiles=directoryInfo.GetFiles().OrderByDescending(f=>f.CreationTimeUtc);foreach(FileInfofiinarchiveFiles){//checkiffileexisted