获取不带扩展名的文件名获取文件夹中的文件名时:DirectoryInfodi=newDirectoryInfo(currentDirName);FileInfo[]smFiles=di.GetFiles("*.txt");foreach(smFiles中的FileInfofi){builder.Append(fi.Name);建造者追加(”,“);...}fi.Name给了我一个扩展名为file1.txt、file2.txt、file3.txt的文件名。如何获取没有扩展名的文件名?(file1,file2,file3)你可以使用Path.GetFileNameWithoutExtension:foreach(FileInfofiinsmFiles){builder.Append(Path.GetFileNameWithoutExtension(fi.Name));建造者追加(”,“);虽然我很惊讶但是没有办法直接从FileInfo获取它(或者至少我看不到它)。使用路径。GetFileNameWithoutExtension()。此解决方案还可以防止添加尾随逗号。varfilenames=String.Join(",",Directory.GetFiles(@"c:","*.txt").Select(文件名=>Path.GetFileNameWithoutExtension(文件名)));我不喜欢DirectoryInfo和FileInfo的情况。DirectoryInfo和FileInfo收集更多关于文件夹和文件的数据,因此它们需要更多的时间和内存。使用Path.GetFileNameWithoutExtension。路径位于System.IO命名空间中。作为附加答案(或复合现有答案),您可以在DirectoryInfo类中编写一个扩展方法来为您执行此操作。这是我写得相当快的一个示例,可以对其进行修饰以提供目录名称或其他修改标准等:使用System.Collections.Generic;使用System.IO;使用System.Linq;使用系统文本;命名空间DocumentDistributor.Library{publicstaticclassmyExtensions{publicstaticstring[]GetFileNamesWithoutFileExtensions(thisDirectoryInfodi){FileInfo[]fi=di.GetFiles();列表returnValue=newList();for(inti=0;i();}}}编辑:我还认为如果数组的构造是使用LINQ实现的,这种方法可以简化或更好,但我没有使用LINQ的经验这种样本很快。编辑2(将近4年后):这是我将使用的LINQ化方法:x=>Path.GetFileNameWithoutExtension(x.FullName));}}Path.GetFileNameWithoutExtension(file);这只会返回没有扩展名的文件名。您也可以更改它,以便同时获得名称和文件类型Path.GetFileName(FileName);来源:https://msdn.microsoft.com/en-us/library/system.io.path(v=vs.110).aspxFileInfo知道它自己的扩展名,所以你可以删除它fileInfo.Name.Replace(fileInfo。扩大,””);fileInfo.FullName.Replace(fileInfo.Extension,"");或者如果你偏执,它可能会出现在中间,或者想要微优化:file.Name.Substring(0,file.Name.Length-file.Extension.Length)你不需要丢失目录如果文件名包含它们:fileName.Remove(fileName.LastIndexOf("."))仅作记录:DirectoryInfodi=newDirectoryInfo(currentDirName);FileInfo[]smFiles=di.GetFiles("*.txt");stringfileNames=String.Join(",",smFiles.Select(fi=>Path.GetFileNameWithoutExtension(fi.FullName)));这样你不使用StringBuilder,而是使用String.Join()。另请注意,Path.GetFileNameWithoutExtension()需要完整路径(fi.FullName),而不是我在其他答案之一中看到的fi.Name。以上就是C#学习教程:获取不带扩展名的文件名共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——usingSystem;使用System.IO;publicclassGetwithoutExtension{publicstaticvoidMain(){//D:Dird应该存在于你的系统中DirectoryInfodir1=newDirectoryInfo(@"D:Dir");FileInfo[]files=dir1.GetFiles("*xls",SearchOption.AllDirectories);foreach(FileInfofinfiles){stringfilename=f.Name.ToString();文件名=文件名.Replace(".xls","");控制台.WriteLine(文件名);}控制台.ReadKey();}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
