当获取某个文件夹中的文件名时:

DirectoryInfo di = new DirectoryInfo(currentDirName);
FileInfo[] smFiles = di.GetFiles("*.txt");
foreach (FileInfo fi in smFiles)
{
    builder.Append(fi.Name);
    builder.Append(", ");
    ...
}

fi。Name给了我一个文件的扩展名:file1.txt, file2.txt, file3.txt。

如何获得没有扩展名的文件名?(file1, file2, file3)


当前回答

使用Path.GetFileNameWithoutExtension()。

其他回答

使用Path.GetFileNameWithoutExtension()。

using System;

using System.IO;

public class GetwithoutExtension
{

    public static void Main()
    {
        //D:Dir dhould exists in ur system
        DirectoryInfo dir1 = new DirectoryInfo(@"D:Dir");
        FileInfo [] files = dir1.GetFiles("*xls", SearchOption.AllDirectories);
        foreach (FileInfo f in files)
        {
            string filename = f.Name.ToString();
            filename= filename.Replace(".xls", "");
            Console.WriteLine(filename);
        }
        Console.ReadKey();

    }

}

试试这个,

string FileNameAndExtension =  "bılah bılah.pdf";
string FileName = FileNameAndExtension.Split('.')[0];

郑重声明:

DirectoryInfo di = new DirectoryInfo(currentDirName);
FileInfo[] smFiles = di.GetFiles("*.txt");
string fileNames = String.Join(", ", smFiles.Select<FileInfo, string>(fi => Path.GetFileNameWithoutExtension(fi.FullName)));

这样你不用StringBuilder而是用String.Join()。另外,请注意path . getfilenamewithoutextension()需要一个完整的路径(fi. fullname),而不是fi。我在另一个答案里看到的名字。

如果文件名中包含目录,您需要不丢失目录:

fileName.Remove(fileName.LastIndexOf("."))