如何使用Objective-C檢查Cocoa中是否存在文件夾(目錄)?如何檢查Cocoa&Objective-C中是否存在文件夾?
41
A
回答
70
使用NSFileManager
的fileExistsAtPath:isDirectory:
方法。請參閱Apple的文檔here。
10
[的NSFileManager fileExistsAtPath:isDirectory:]
Returns a Boolean value that indicates whether a specified file exists.
- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory
Parameters
path
The path of a file or directory. If path begins with a tilde (~), it must first be expanded with stringByExpandingTildeInPath, or this method will return NO.
isDirectory
Upon return, contains YES if path is a directory or if the final path element is a symbolic link that points to a directory, otherwise contains NO. If path doesn’t exist, the return value is undefined. Pass NULL if you do not need this information.
Return Value
YES if there is a file or directory at path, otherwise NO. If path specifies a symbolic link, this method traverses the link and returns YES or NO based on the existence of the file or directory at the link destination.
+0
第一行混淆了`fileExists..`是一個類方法。請更新答案。我本來可以做到的,但它的回答太舊了,如果你會更好。 – 2015-05-09 10:40:38
13
從蘋果在NSFileManager.h關於檢查文件系統的一些很好的建議:
「這是更好的嘗試的操作(如加載文件或創建一個目錄),並優雅地處理錯誤,而不是試圖提前判斷操作是否成功。試圖根據文件系統的當前狀態或文件系統上的特定文件判斷行爲是令人鼓舞的面對文件系統競爭條件的行爲。「
6
NSFileManager是查找文件相關API的最佳位置。你需要的特定API是 - fileExistsAtPath:isDirectory:
.
例子:
NSString *pathToFile = @"...";
BOOL isDir = NO;
BOOL isFile = [[NSFileManager defaultManager] fileExistsAtPath:pathToFile isDirectory:&isDir];
if(isFile)
{
//it is a file, process it here how ever you like, check isDir to see if its a directory
}
else
{
//not a file, this is an error, handle it!
}
1
如果您有NSURL
對象path
,最好使用路徑將其轉化成NSString
。
NSFileManager*fm = [NSFileManager defaultManager];
NSURL* path = [[[fm URLsForDirectory:NSDocumentDirectory
inDomains:NSUserDomainMask] objectAtIndex:0]
URLByAppendingPathComponent:@"photos"];
NSError *theError = nil;
if(![fm fileExistsAtPath:[path path]]){
NSLog(@"dir doesn't exists");
}else
NSLog(@"dir exists");
相關問題
- 1. 如何檢查文件夾中是否已存在文件
- 2. AngularJS - 檢查文件夾是否存在
- 3. 檢查IMAP是否存在文件夾
- 4. 如何檢查文件是否鎖定在Cocoa中?
- 5. PHP - 檢查一個文件夾中是否存在文件
- 6. 檢查文件夾中是否存在文件actionScript 3
- 7. Flex 4.5.1檢查資產文件夾中是否存在文件
- 8. 檢查包/項目中是否存在文件/文件夾
- 9. 如何檢測項目文件夾中是否存在文件?
- 10. 如何檢查文件是否存在?
- 11. 如何檢查文件是否存在?
- 12. WebDav如何檢查文件夾是否存在?
- 13. 如何檢查一個文件夾是否存在使用PHP
- 14. Adobe Air如何檢查文件夾是否存在?
- 15. 如何通過FTP檢查遠程文件夾中是否存在文件?
- 16. 使用AngularJS如何檢查文件夾中是否存在PDF文件?
- 17. 使用Jekyll如何檢查文件夾中是否存在文件?
- 18. 如何檢查文件是否存在於Android上的/ data文件夾中
- 19. SharePoint 2007,如何檢查文檔庫中是否存在文件夾
- 20. 使用Zend郵件檢查郵件文件夾是否存在
- 21. 檢查文件夾中是否存在c#
- 22. 檢查文件夾是否存在於simplekml中 - python
- 23. 如何檢查文件是否存在於war文件中?
- 24. 如何檢查chm文件中是否存在子文件?
- 25. Python如何檢查os.exists是否在相同的文件夾中?
- 26. 檢查JList中是否存在文件
- 27. 檢查文件中是否存在行
- 28. Zend gData檢查文件夾是否存在(谷歌文檔)
- 29. Android:檢查文件是否存在於文件夾中或不在SD卡中
- 30. 如何檢查Firebase存儲中是否存在文件?
沒有確切的。因爲你傳遞一個指向bool的指針作爲`isDirectory`。這意味着如果有一個具有這樣的名字的文件,這個方法返回YES,並將`NO`寫入指針'isDirectory`。 – yas375 2013-09-30 16:06:36
但是,一切都是unix中的文件。 – uchuugaka 2014-01-28 12:09:54