Several ways IOS gets the directory path of a file [go]

Source: Internet
Author: User
Tags tmp folder

Several ways IOS gets the directory path of a file2 years ago Davidzhang

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 ()) Manually saved files in documents
Nsuserdefaults saved files in the TMP folder
1. Documents directory: You should write all the application data files to this directory. This directory is used to store user data or other information that should be backed up regularly.
2. Appname.app directory: This is the application's package directory, which contains the application itself. Because the application must be signed, you cannot modify the contents of this directory at run time, which may cause the application to fail to start.
3. Library directory: There are two sub-directories under this directory: Caches and Preferences
Preferences directory: Contains the application's preferences file. Instead of creating a preference file directly, you should use the Nsuserdefaults class to get and set your application's preferences.
Caches directory: Used to hold application-specific support files, saving the information that is needed during application startup.
4. tmp directory: This directory is used to store temporary files, saving information that is not needed during the application restart.
Ways to get these directory paths:
1, get the Home directory path function:
NSString *homedir = Nshomedirectory ();
2. Method for obtaining the Documents directory path:
Nsarray *paths = Nssearchpathfordirectoriesindomains (NSDocumentDirectory, Nsuserdomainmask, YES);
NSString *docdir = [Paths objectatindex:0];
3, get the Caches directory path method:
Nsarray *paths = Nssearchpathfordirectoriesindomains (Nscachesdirectory, Nsuserdomainmask, YES);
NSString *cachesdir = [Paths objectatindex:0];
4. Method to get the TMP directory path:
NSString *tmpdir = Nstemporarydirectory ();
5, gets the method of the resource file path in the application package:
For example, get a picture resource (apple.png) path in the package by:

nsstring *imagepath = [[NSBundle mainbundle] pathForResource:@ " Apple "oftype:@" PNG "]; UIImage *appleimage = [[UIImage alloc] initwithcontentsoffile:imagepath]; 

The Mainbundle class method in the

code is used to return an object that represents the application package.
Several directory acquisition methods in the iphone sandbox (sandbox):

//Get Sandbox home directory path  
NSString *homedir = Nshomedirectory ();  
// Get the documents directory path  
Nsarray *paths = Nssearchpathfordirectoriesindomains (NSDocumentDirectory, Nsuserdomainmask, YES);  
NSString *docdir = [Paths objectatindex:0];  
//Get caches directory path  
Nsarray *paths = Nssearchpathfordirectoriesindomains (Nscachesdirectory, Nsuserdomainmask, YES);  
NSString *cachesdir = [Paths objectatindex:0];  
//Get TMP directory path  
NSString *tmpdir =   Nstemporarydirectory ();  

//Gets the path to a picture resource (apple.png) in the current package  
NSString *imagepath = [[NSBundle Mainbundle] pathforresource:@ "Apple" oftype:@ "PNG"];  
UIImage *appleimage = [[UIImage alloc] initwithcontentsoffile:imagepath];  

Example:

nsfilemanager* Fm=[nsfilemanager defaultmanager];if (![ FM fileexistsatpath:[self DataFilePath]) {    //The following is a saved path to the file    [FM createdirectoryatpath:[self DataFilePath ] Withintermediatedirectories:yes Attributes:nil Error:nil];    Get all filenames under a directory    nsarray *files = [FM subpathsatpath: [self datafilepath]];    Read a file    nsdata *data = [FM contentsatpath:[self DataFilePath];    or    nsdata *data = [NSData datawithcontentofpath:[self datafilepath];}

Several ways IOS gets the directory path of a file [go]

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.