Ways to get directory paths for various files in iOS

Source: Internet
Author: User
Tags tmp folder

The iphone sandbox model has four folders, what is the location of the permanent data store, and what is the simple way to get the path to the emulator.

Documents,tmp,app,library.

(Nshomedirectory ()),

The manually saved files are in the documents file.

Nsuserdefaults saved files in the TMP folder


1, Documents directory: You should have all de Application data files are written to this directory. This directory is used to store user data or other backup style= color:black " letter

2, Appname.app directory: This is the package directory, containing application this So you cannot run this directory in the

3, Library directory: This directory has two subdirectories: Caches and Preferences
preferences directory: contains applications Preferences file. Instead of creating a preference file directly, you should use the Nsuserdefaults class to get and set the application preferences.
caches directory: for storing application-specific supporting files, saving the application needed during the start-up process information.

4. tmp directory: This directory is used to store temporary files and to save information that is not needed during the application startup process.


Get these directory pathsof theMethod:
1, Get home directory pathof theFunction:
NSString *homedir = Nshomedirectory ();
2, get the Documents directory pathof theMethod:
Nsarray *paths = Nssearchpathfordirectoriesindomains (NSDocumentDirectory, Nsuserdomainmask, YES);
NSString *docdir = [Paths objectatindex:0];
3, get the Caches directory pathof theMethod:
Nsarray *paths = Nssearchpathfordirectoriesindomains (Nscachesdirectory, Nsuserdomainmask, YES);
NSString *cachesdir = [Paths objectatindex:0];
4, get the TMP directory pathof theMethod:
NSString *tmpdir = Nstemporarydirectory ();
5. Get the resource file path in the application packageof theMethod:
For example, get a picture resource (apple.png) path in the packageof theMethod:
NSString *imagepath = [[NSBundle mainbundle] pathforresource:@ "apple" oftype:@ "PNG"];
UIImage *appleimage = [[UIImage alloc] initwithcontentsoffile:imagepath];
In your codeof theThe Mainbundle class method is used to return a representative application packageof theObject.

several ways to get the contents of the iphone Sandbox (sandbox): [CPP]View Plaincopy
  1. //Get Sandbox home directory path   
  2. nsstring *homedir = nshomedirectory ();   
  3. < span class= "comment" style= "margin:0px; padding:0px; Border:none; Color:rgb (0,130,0); Background-color:inherit ">//  Get documents directory path &NBSP;&NBSP;
  4. Nsarray *paths = Nssearchpathfordirectoriesindomains (NSDocumentDirectory, Nsuserdomainmask, YES);
  5. NSString *docdir = [Paths objectatindex:0];
  6. //  Get caches directory path &NBSP;&NBSP;
  7. Nsarray *paths = Nssearchpathfordirectoriesindomains (Nscachesdirectory, Nsuserdomainmask, YES);
  8. NSString *cachesdir = [Paths objectatindex:0];
  9. < span class= "comment" style= "margin:0px; padding:0px; Border:none; Color:rgb (0,130,0); Background-color:inherit ">//  get tmp directory path &NBSP;&NBSP;
  10. NSString *tmpdir = Nstemporarydirectory ();
[CPP]View Plaincopy
  1. < span class= "comment" style= "margin:0px; padding:0px; Border:none; Color:rgb (0,130,0); Background-color:inherit ">//  Gets the current package in a picture resource (apple.png) path &NBSP;&NBSP;
  2. nsstring *imagepath = [[nsbundle mainbundle]  Pathforresource:@  oftype:@ " PNG " ];&NBSP;&NBSP;
  3. UIImage *appleimage = [[UIImage alloc] initwithcontentsoffile:imagepath];

Example:

nsfilemanager* Fm=[nsfilemanager Defaultmanager];
if (![ FM fileexistsatpath:[self DataFilePath]) {

// The following is a path to the file Save
[FM Createdirectoryatpath:[self DataFilePath] Withintermediatedirectories:yes attributes:nil error:nil];

Get all the filenames in a directory
Nsarray *files = [FM subpathsatpath: [self datafilepath]];

Read a file
NSData *data = [FM contentsatpath:[self DataFilePath];

//or
NSData *data = [NSData datawithcontentofpath:[self DataFilePath]];
}

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.