C# 路径过程问题

C# 路径过程问题,c#,.net,C#,.net,我有一个文件名叫a.b.c.d 如果我使用Path.getfilename而不使用outextension,我会得到a.b.c,我想知道如何获得a仅部分选项1: string p = Path.GFNWE (Path.GFNWE (Path.GFNWE (original))); 备选案文2: string p = original; int i; while ((i = p.LastIndexOf ('.')) > 0) { p = Path.GetFileNameW

我有一个文件名叫a.b.c.d 如果我使用Path.getfilename而不使用outextension,我会得到a.b.c,我想知道如何获得a仅部分选项1:

string p = Path.GFNWE (Path.GFNWE (Path.GFNWE (original)));
备选案文2:

 string p = original;
 int i;
 while ((i = p.LastIndexOf ('.')) > 0) {
      p = Path.GetFileNameWithoutExtension (p);
 }
选项3:(小心,区分大小写)

备选案文1:

string p = Path.GFNWE (Path.GFNWE (Path.GFNWE (original)));
备选案文2:

 string p = original;
 int i;
 while ((i = p.LastIndexOf ('.')) > 0) {
      p = Path.GetFileNameWithoutExtension (p);
 }
选项3:(小心,区分大小写)


嗯,你可以试试这样的东西

Path.GetFileName("a.b.c.d").Split('.')[0]

嗯,你可以试试这样的东西

Path.GetFileName("a.b.c.d").Split('.')[0]
这里有一个方法:

var path = "asdf.bsdf.csdf";

while(Path.HasExtension(path))
    path = Path.GetFileNameWithoutExtension(path);
还有一个:

path = "asdf.bsdf.csdf";
path = path.Substring(0, path.IndexOf('.'));
请注意,如果
path
实际上是一个路径而不仅仅是一个文件名,则后者需要稍加修改,而前者则不需要修改

有很多其他的方法可以做到这一点——这只是两个例子。

这里有一种方法:

var path = "asdf.bsdf.csdf";

while(Path.HasExtension(path))
    path = Path.GetFileNameWithoutExtension(path);
还有一个:

path = "asdf.bsdf.csdf";
path = path.Substring(0, path.IndexOf('.'));
请注意,如果
path
实际上是一个路径而不仅仅是一个文件名,则后者需要稍加修改,而前者则不需要修改


还有很多其他方法可以做到这一点——这只是两个例子。

您至少需要给我们举个例子。当然,这种行为是有意义的,因为
d
是Windows唯一解释为文件扩展名的东西。您所做的与
GetFileNameWithoutExtension
的预期功能不同,可能更好地实现为在每个句点拆分一个字符串。您至少需要给我们一个例子。当然,这种行为是有意义的,因为
d
是Windows唯一解释为文件扩展名的东西。您所做的操作与
GetFileNameWithoutExtension
的预期功能不同,最好是在每个句点拆分一个字符串。如果文件名不包含任何点,则抛出。如果文件名不包含任何点,则抛出。