Question: iPhone directory structure

With regards to the way the iOS file system is laid out, where is the openframeworks /data path located in it? I have an app that needs to use the file transfer feature of iTunes, and I was wondering where exactly the data folder gets plopped when transferred to an iPhone.

In addition, I am having trouble figuring out how to direct the Openframeworks root to the app (user) documents folder on the iPhone. I’ve used:

  
  
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
  
	NSString *documentsDirectory = [paths objectAtIndex:0];  
	  
	char *dirstring;  
	dirstring = [documentsDirectory UTF8String];  
	  
	ofSetDataPathRoot(dirstring);  

as an attempt to read the iPhone’s documents directory constant into a standard string for me to work with. This is clearly wrong, as the types don’t match up, but Apple insists on NSString, which I haven’t successfully been able to convert to a standard string. How do I properly perform this operation?

Aha! Solved it.

I dunno if this is documented elsewhere, but I’ll explain how I did it anyway, in case someone else has the same issue.

So, I use the following code to get a plain string of the iPhone documents directory:

  
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
	NSString *documentsDirectory = [paths objectAtIndex:0];  
	  
	const char* dirString = [documentsDirectory cStringUsingEncoding:NSASCIIStringEncoding];  

And the value dirString can be used to get to /var/mobile/Applications/WHATEVER-YOUR-APP-ID-IS/Documents/. I used ofDisableDataPath() and stuck it into ofxDirList:

  
ofDisableDataPath();  
	  
	ipDirectory.listDir(dirString);  

And it does successfully list the contents of the App’s documents folder. So now the App has an iTunes-modifiable folder that can be read in OF.