NSURL比较:与不同的URL进行比较

时间:2012-07-12 11:08:33

标签: objective-c cocoa if-statement nsurl

我搜索了这个但是我没有得到正确的关键字来获得结果。 所以我有问题。 这是我的问题。

如何判断检查条件,给定的NSURL路径是否为FOLDER(或)文本文件。
       例如:

 if ([the given url is for FOlDERS])  
 {
    //i want to so something
 }
 else if([it contains .rtf files])
 {
    //i want to so something
 }
  else if([it contains .mov files])
  {
    //i want to so something
  }        

我的网址是

Users/Desktop/dr/dg.rtf  
Users/Desktop/dr/dhoom.mov  
Users/Desktop/dr/SampleTest/

给我一​​些建议。

3 个答案:

答案 0 :(得分:2)

NSURL *url;
//set url here

if([url isFileURL])
{
  if([url pathExtension] isEqualToString:@"mov"])
  {
    //do .mov stuff
  }
  else if([url pathExtension] isEqualToString:@"rtf"]
  {
    //do .rtf stuff
  }
}
else
{
   if([[url lastPathComponent] isEqualToString:@"SampleTest"])
   {
     //do your SampleTest folder stuff
   }
}

答案 1 :(得分:1)

这个怎么样?

BOOL isDir;
NSURL *yourURL;

NSFileManager *fileManager = [[NSFileManager alloc] init];
BOOL result = [fileManager fileExistsAtPath:[yourURL path] isDirectory:&isDir];
if (result) {
    // ok yourURL is pointing to something real
    if (isDir) {
        // yourURL is a directory
    }
    else if ([[yourURL pathExtension] isEqualToString:@"mov"])
    {
        // yourURL is a .mov
    }
    else if ([[yourURL pathExtension] isEqualToString:@"rtf"])
    {
        // yourURL is a .rtf
    }
}
[fileManager release];

使用固定语法的 Michal werner 答案的组合。

答案 2 :(得分:0)

请查看NSFileManager的{​​{3}}。

它包含一个完全符合您需要的方法:

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