swift NSFileManager,document,数据读写

//

//  DocumentActionViewController.swift

//  UIControlDemo

//

//  Created by  on 14/12/10.

//  Copyright (c) 2014年 马大哈. All rights reserved.

//

import UIKit

class DocumentActionViewController: BaseViewController {

override func viewDidLoad() {

super.viewDidLoad()

let leftBarButton:UIBarButtonItem = UIBarButtonItem(title: "移除data.plist", style: UIBarButtonItemStyle.Plain, target: self, action: "removePlistFile")

self.navigationItem.rightBarButtonItem = leftBarButton;

//        println("\n程序document路径 : \(applicationDocumentPath())")

// 在document中是否存在 ImageOfGoods/data.plist 文件

if applicationFileExistAtPath(false, fileName: "data.plist", directory: "ImageOfGoods"){

var data = applicationReadDataToFileAtPath(dataTypeArray: true,fileName: "data.plist", directory: "ImageOfGoods") as NSArray

println("\n获取file数据 : \(data)")

}else{

var writeData = ["1","2","3","4","5"]

// 创建  ImageOfGoods  文件夹

applicationCreatFileAtPath(fileTypeDirectory: true, fileName: "ImageOfGoods", directory: "")

// 创建  data.plist  文件

applicationCreatFileAtPath(fileTypeDirectory: false, fileName: "data.plist", directory: "ImageOfGoods")

// 插入  数组

applicationWriteDataToFileAtPath(dataTypeArray: true , content: writeData, fileName: "data.plist", directory: "ImageOfGoods")

}

}

func removePlistFile() {

applicationRemoveFileAtPath("data.plist", directory: "ImageOfGoods")

}

// 获取程序的document

func applicationDocumentPath() ->String{

let application = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)

let documentPathString = application[0] as String

return documentPathString

}

// 拼接文件路径

func applicationFilePath(fileName: String ,directory: String) ->String {

var docuPath = applicationDocumentPath()

if directory.isEmpty {

return docuPath.stringByAppendingPathComponent(fileName)

}else{

return docuPath.stringByAppendingPathComponent("\(directory)/\(fileName)")

}

}

// 指定路径下是否存在 特定 “文件” 或 “文件夹”

func applicationFileExistAtPath(fileTypeDirectory: Bool ,fileName: String ,directory: String) ->Bool {

var filePath = applicationFilePath(fileName, directory: directory)

if fileTypeDirectory {//普通文件(图片、plist、txt等等)

return NSFileManager.defaultManager().fileExistsAtPath(filePath)

}else{//文件夹

//UnsafeMutablePointer<ObjCBool> 不能再直接使用  Bool  类型

var isDir : ObjCBool = false

return NSFileManager.defaultManager().fileExistsAtPath(filePath, isDirectory: &isDir)

}

}

// 创建文件 或 文件夹在指定路径下

func applicationCreatFileAtPath(#fileTypeDirectory: Bool ,fileName: String ,directory: String) ->Bool{

var filePath = applicationFilePath(fileName, directory: directory)

if fileTypeDirectory {//普通文件(图片、plist、txt等等)

return NSFileManager.defaultManager().createDirectoryAtPath(filePath, withIntermediateDirectories: true, attributes: nil, error: nil)

}else{//文件夹

return NSFileManager.defaultManager().createFileAtPath(filePath, contents: nil, attributes: nil)

}

}

// 移除指定路径下地文件中

func applicationRemoveFileAtPath(fileName: String ,directory: String) -> Bool{

var filePath = applicationFilePath(fileName, directory: directory)

return NSFileManager.defaultManager().removeItemAtPath(filePath, error: nil)

}

// 向指定路径下地文件中写入数据

func applicationWriteDataToFileAtPath(#dataTypeArray: Bool ,content:AnyObject ,fileName: String ,directory: String) -> Bool{

var filePath = applicationFilePath(fileName, directory: directory)

if dataTypeArray {

return (content as NSArray).writeToFile(filePath, atomically: true)

}else{

return (content as NSDictionary).writeToFile(filePath, atomically: true)

}

}

// 读取特定文件中数据(如:plist、text等)

func applicationReadDataToFileAtPath(#dataTypeArray: Bool ,fileName: String ,directory: String) -> AnyObject{

var filePath = applicationFilePath(fileName, directory: directory)

if dataTypeArray {

return NSArray(contentsOfFile: filePath)!

}else{

return NSDictionary(contentsOfFile: filePath)!

}

}

// 读取文件夹中所有子文件(如:photo文件夹中所有image)

func applicationReadFileOfDirectoryAtPath(fileName: String ,directory: String) -> AnyObject{

var filePath = applicationFilePath(fileName, directory: directory)

var content = NSFileManager.defaultManager().contentsOfDirectoryAtPath(filePath, error: nil)

return content!

}

override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// Dispose of any resources that can be recreated.

}

}

时间: 2024-10-29 20:45:25

swift NSFileManager,document,数据读写的相关文章

swift中JSon数据的处理

1 import UIKit 2 3 class MainTabBarViewController: UITabBarController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 //1.获取json文件的地址 8 guard let jsonPath = NSBundle.mainBundle().pathForResource("MainVCSettings.json", ofType: nil) el

HBase 数据读写流程

HBase 数据读写流程 2016-10-18 杜亦舒 读数据 HBase的表是按行拆分为一个个 region 块儿,这些块儿被放置在各个 regionserver 中 假设现在想在用户表中获取 row key 为 row0001 的用户信息 要想取得这条数据,就需要先找到含有此条记录的 region HBase 是如何定位到具体 regionserver 中的具体 region 的呢? HBase 中有一个内置的 hbase:meta 表,其中记录了所有表的所有 region 的详细信息 例如

数字图像处理 CImage类的使用与封装(jpg png gif tif bmp等格式图像的加载、数据读写、保存等功能)

引入CImage类的原因 原有的CBitmap 类只能处理BMP格式的图片,非常受限.而CImage可以处理JPGE.GIF.BMP.PNG等多种格式图片,扩展了图片处理功能且能与CBitmap 进行转换( 因为所载入的位图句柄都是HBITMAP,所以可相互转换),因此引入CImage类进行图像处理. CImage类简介 CImage是MFC和ATL共享的新类,它能从外部磁盘中调入一个JPEG.GIF.BMP和PNG格式的图像文件加以显示,而且这些文件格式可以相互转换. CImage提供增强型的

read/write数据读写传输方式(转)

前言 笔者本打算撰写一篇讲解标准I/O(缓存I/O)的博文,但是发现已经有网友做过同样的工作,并且工作质量上乘,特转载于此. 原文地址http://lenky.info/archives/2012/08/1856 正文 利用系统调用函数read()/write()是我们平常用得最多的一种数据读写方式,大多数情况下我们并没有考虑这种数据读写方式的执行效率,因为在很多并不以数据频繁读写为性能瓶颈的应用程序中函数read()/write()消耗的执行时间可以忽略,但是它们内在具体实现和执行效率到底如何

mongodb学习(Document数据操作)

这篇博文主要学习mongodb中的Document的数据更新操作.包括了数据的"插入","更新"和"删除". Document数据插入 插入一条数据到document文档中用到的命令是"db.集合名称.insert(on=bj)" ,如图: 从图中可以看出在我插入一条数据之后,再次查询发现确实添加到集合中了. 那么如果我需要批量插入数据应该怎么操作呢??我们在之前已经说过了,mongodb的客户端shell实际上就是一个Jav

实现AT24C02的数据读写操作

源:实现AT24C02的数据读写操作 /*************************************************************** 功能:11:32 2008-6-27 作者:SG 时间:2004-03-15 版本:V1.0 ***************************************************************/ #include "INTRINS.H" #include "reg52.h"

Android中SdCard的数据读写

import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import android.R.integer; import android.content.Context; import android.os.Environment; public class FileService { private Context context; public Fil

iOS开发笔记-swift实现iOS数据持久化之归档NSKeyedArchiver

IOS数据持久化的方式分为三种: 属性列表 (plist.NSUserDefaults) 归档 (NSKeyedArchiver) 数据库 (SQLite.Core Data.第三方类库等 归档(又名序列化),把对象转为字节码,以文件的形式存储到磁盘上:程序运行过程中或者当再次重写打开程序的时候,可以通过解归档(反序列化)还原这些对象.本文主要介绍swift实现iOS数据归档. 归档Foundation框架对象 func archiveData(){ var path: AnyObject=NS

Cassandra 分布式数据库详解,第 2 部分:数据结构与数据读写

Cassandra 的数据存储结构 Cassandra 中的数据主要分为三种: CommitLog:主要记录下客户端提交过来的数据以及操作.这个数据将被持久化到磁盘中,以便数据没有被持久化到磁盘时可以用来恢复. Memtable:用户写的数据在内存中的形式,它的对象结构在后面详细介绍.其实还有另外一种形式是 BinaryMemtable 这个格式目前 Cassandra 并没有使用,这里不再介绍了. SSTable:数据被持久化到磁盘,这又分为 Data.Index 和 Filter 三种数据格