例子:
File Paths: | Output:
-----------------------------
C:\Abc\foo.txt | true
C:\Abc\foo\bar.txt | true
C:\nodir.txt | false
E:\nodir.txt | false
C:\Abc\ | true
C:\Abc\def | true
如何查找给定路径在给定路径中是否至少包含一个文件夹(excluding the main drive folder like C:\)
。
目前,我正在考虑是否可以拆分\
并包含多个元素。有什么优雅的解决方案吗?
根据我的评论,无法确定类似的情况,C:\nodir.txt
因为可能是文件也可能是文件夹。
bool CheckIt(string path)
{
IEnumerable<string> pathItems = path.Split(Path.DirectorySeparatorChar);
var isFile = System.IO.File.Exists(path);
if (isFile)
pathItems = pathItems.Skip(1);
if (Path.IsPathRooted(path))
pathItems = pathItems.Skip(1);
return pathItems.Any();
}
假设给定的路径实际存在于系统中,这将提供正确的答案。
如果您希望它不管文件是否存在都可以工作,则必须假设以扩展名结尾的路径是file而不是folder。在这种情况下,您可以使用以下方法更新该方法:
var isFile = Path.GetFileNameWithoutExtension(path) != Path.GetFileName(path);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句