0

我正在尝试从可能包含或不包含文件名的路径中提取目录。问题是,当我尝试获取已经是目录的路径的目录名称时, Path.GetDirectoryName() 返回该目录的上层。路径是从数据库加载的,所以我无法检查文件属性。

前任。 Path.GetDirectoryName("D:\Work\Project\Sources\trunk\Project2\bin\Debug") 返回 "D:\Work\Project\Sources\trunk\Project2\bin\"

我在想一个简单的算法,它检查路径是否包含“。” 特点; 如果是,那么我们正在处理包含文件名的路径。不幸的是,目录名称也可以包含“。” 特点。

我知道这个问题没有完美的解决方案,但下一个最好的方法是什么?

已经有一个关于这个问题的Stackoverflow 问题,但它假定文件或目录已经存在。

4

2 回答 2

3

如果您的目录或文件不存在,则无法知道它是文件还是目录。

在您的示例中D:\Work\Project\Sources\trunk\Project2\bin\Debug,目录中可能有一个名为Debug(不带扩展名)的bin文件。

另一个例子:D:\Work\Project\Sources\trunk\Project2\bin\Debug\file.exe,可能有一个名为的目录file.exe,它是Debug...的子目录

于 2012-07-18T11:46:53.010 回答
1

对于您的场景,如果您的案例确实只涉及“file.ext”格式,那么以下正则表达式将回答您需要的问题

^(.*/)([^/]*)$
于 2012-07-18T11:52:53.727 回答