判断该路径是文件还是文件夹

判断该路径是文件还是文件夹,第1张

[NSFileManager defaultManager]有这么一个api

- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(nullable BOOL *)isDirectory

isDirectory是一个指针

说明如下:

Upon return, contains YES if path is a directory or if the final path element is a symbolic link that points to a directoryotherwise, contains NO. If path doesn’t exist, this value is undefined upon return. Pass NULL if you do not need this information.

就是说传入一个bool类型的指针,执行改方法后这个参数的值是yes的话就是路径,反之是文件

用法如下:

BOOL isDir = NO [[NSFileManager defaultManager] fileExistsAtPath:allPath isDirectory:&isDir] if(isDir)//是文件夹{}

文件也可能没有扩展名,目录也可以有小数点

判断是文件还是文件夹

if(File.Exists(path)){

// 是文件

}else if(Directory.Exists(path)){

// 是文件夹

}else{

// 都不是

}

第十三个findfirstfile寻找文件以及获得文件的信息

这里举一个例子吧,列举e盘第一目录下的所有文件,包括文件夹,结合findnextfile

#include<windows.h>

#include<stdio.h>

int

main()

{

bool

done=true

win32_find_data

fd

handle

hfind

=

findfirstfile("e:\\*.*",

&fd)//第一个参数是路径名,可以使用通配符,懂dos的人应该知道吧!fd存储有文件的信息

while

(done)

{

printf("%s\n",fd.cfilename)

done=findnextfile(hfind,

&fd)//返回的值如果为0则没有文件要寻了

}

return

0

}

当然也可以直接找一个文件,不使用通配符,但这样有什么意义呢?,如findfirstfile("e:\\aaa.txt",&fd)其实这个可以获取一个文件的信息,如文件是不是隐藏的,或者有没有只读属性等。

当然通过控制通配符,也可以寻找特定类型的文件,比如我只要找文本文件,那么就是这个语句findfirstfile("e:\\*.txt",&fd)就行了,关键看你自己灵活运用。

前面说过fd里存储有文件的信息,那怎么根据fd里面的成员判断这个文件的属性,文件是否隐藏,是不是文件夹。

fd里的dwfileattributes存储有文件的信息,如判断是否为文件夹,只要把这个变量和file_attribute_directory进行按位与运算,如果为1的话,表明为文夹件,如if(fd.dwfileattributes&file_attribute_directory==1)

printf("%s是文件夹\n",fd.cfilename)

其它判断也是一样,现在给出文件的属性(常用几个):file_attribute_hidden(隐藏)

file_attribute_readonly(只读)file_attribute_system(系统)

第十四个findnextfile寻找文件

参照findfirstfile函数的例子!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11780660.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存