It seems NSBundle remembers file system during instantiation of object. After that it doesn't recognise any new files added to that folder! If you remove folder and recreate new with same name it doesn't recognise that either. I tried NSBundle pointing to Documents directory always and used [pathForResource:filename ofType:extension inDirectory:directory] but that also doesn't work when you replace directory. In short never deal with NSBundle if your file system is dynamic using same names!
I found solution by creating current timestamp folder for each new downloads and removing older folder and then reset NSBundle object. Now it works and creates the right path as it wasn't actually exists! Read Apple documents on NSBundle for more details.