C#从路径中剪切文件名

Nee*_*rma 4 c# path

我正在创建一个图像提取工具,我能够用完整路径检索图像..

例如:

在此处输入图片说明

我需要从路径中剪切文件名(rss)...

我搜索帖子并尝试以下

//1.
 //string str = s.Split('/', '.')[1];

//2.    
            string s1;

               // string fileName = "abc.123.txt";
                int fileExtPos = s.LastIndexOf(".");
                if (fileExtPos >= 0)
                    s1 = s.Substring(0, fileExtPos);


//3.
                //var filenames = String.Join(
                //    ", ",
                //    Directory.GetFiles(@"c:\", "*.txt")
                //       .Select(filename =>


//4.
                //           Path.GetFileNameWithoutExtension(filename)));
Run Code Online (Sandbox Code Playgroud)

似乎没有工作

我想要“图像”和“png”之间的名称..确切的代码是什么?

任何建议都会有所帮助

Ste*_*eve 5

只需使用Path类及其方法GetFileNameWithoutExtension

string file = Path.GetFileNameWithoutExtension(s);
Run Code Online (Sandbox Code Playgroud)

警告:在这种情况下(只有没有扩展名的文件名并且在 URL 之后没有传递参数)该方法运行良好,但是如果您使用类的其他方法(如 GetDirectoryName),则情况并非如此。在这种情况下,斜杠被反转为 Windows 风格的反斜杠“\”,这可能是程序其他部分的错误

另一种解决方案,可能更面向 WEB 是通过类 Uri

Uri u = new Uri(s);
string file = u.Segments.Last().Split('.')[0];
Run Code Online (Sandbox Code Playgroud)

但我发现这不那么直观,而且更容易出错。