如果路径不存在,如何检查字符串路径是“文件”还是“目录”?

时间:2014-09-22 13:55:41

标签: c# io

我有一个函数可以通过确定PathString Path还是File来自动创建指定的Directory

通常情况下,如果路径已经exists

,我会使用此功能
FileAttributes attributes = File.GetAttributes("//Path");

if ((attributes & FileAttributes.Directory) == FileAttributes.Directory)
    {
        Directory.CreateDirectory("//Path");
    }

但如果没有呢?如果String Path不存在,如何检查FileDirectory还是{{1}}?

2 个答案:

答案 0 :(得分:6)

如果您的方案中的文件必须包含扩展名,那么您可以使用此方法。

注意:在Windows中,在目录中包含句点是合法的,但这主要是为了跨文件的跨操作系统兼容性而引入的。在严格的Windows环境中,将文件没有扩展名或在目录名中放置句点或空格被认为是不好的形式。如果您不需要考虑该方案,那么您可以使用此方法。如果不是,你必须通过链或结构发送某种标志来识别字符串的意图。

var ext = System.IO.Path.GetExtension(strPath);
if(ext == String.Empty)
{
    //Its a path
}

如果您不需要对文件类型进行任何分析,您可以这样简单:

if(System.IO.Path.HasExtension(strPath))
{
    //It is a file
}

答案 1 :(得分:1)

简短的回答是,没有100%的方法可以仅通过路径将文件夹与文件区分开。文件不必具有文件扩展名,文件夹的名称可以带有句点(使其看起来像文件扩展名)。