我有一个函数可以通过确定Path
是String Path
还是File
来自动创建指定的Directory
。
通常情况下,如果路径已经exists
:
FileAttributes attributes = File.GetAttributes("//Path");
if ((attributes & FileAttributes.Directory) == FileAttributes.Directory)
{
Directory.CreateDirectory("//Path");
}
但如果没有呢?如果String Path
不存在,如何检查File
是Directory
还是{{1}}?
答案 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%的方法可以仅通过路径将文件夹与文件区分开。文件不必具有文件扩展名,文件夹的名称可以带有句点(使其看起来像文件扩展名)。