文件夹操作大全(swift)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件夹操作大全(swift)相关的知识,希望对你有一定的参考价值。

参考技术A ios开发遇到读文件,写文件等,对文件和文件夹的操作,这时就可以使用FileManager,FileHandle等类来实现。下面总结了各种常用的操作:

假设用户文档下Document有如下文件和文件夹:test1.txt、fold1/test2.txt
(1)首先我们获取用户文档目录路径

(2). 对指定路径执行浅搜索,返回指定目录路径下的文件、子目录及符号链接的列表

(3). 类似上面的,对指定路径执行浅搜索,返回指定目录路径下的文件、子目录及符号链接的列表

(4). 深度遍历,会递归遍历子文件夹(但不会递归符号链接)

(5). 类似上面的,深度遍历,会递归遍历子文件夹(但不会递归符号链接)

(6). 深度遍历,会递归遍历子文件夹(包括符号链接,所以要求性能的话用enumeratorAtPath)

方式1:

方式2:

可以通过write(to:)方法,可以创建文件并将对象写入,对象包括String,NSString,UIImage,NSArray,NSDictionary等。
(1)把String保存到文件

(2)把图片保存到文件路径下

(3)把NSArray保存到文件路径下

(4)把NSDictionary保存到文件路径下

(1)方法1

(2)方法2

(1)方法1

(2)方法2

(1)方法1

(2)方法2

(1)方法1:获取所有文件,然后遍历删除

(2)方法2:删除目录后重新创建该目录

从 attributes 中获取具体的属性:

swift新版本相对于swift1.0版本改动大全

前言:

        Swift发展迅速,为了紧跟潮流,小编也学习了swift,但小编学习了1.0版本,现在发现新版本和旧版本有很多的改进和区别,相信苹果官方也是在持续改进swift吧,现在小编就对遇到的改动做一个总结,以便能给遇到相同或者相似问题的小伙伴们提供一些帮助.废话不多讲了,进入正题.


这样更直观一些


//swift新版本相对于swift1.0版本的一些改动

        

        //1.println废弃改为print

        

        //2.遍历数组

        for (index, value)in enumerate(shoppingList)

        //改为

        for (index, value)in shoppingList.enumerate()

        

        //3.数组添加元素的方法

        //shoppingList += "柚子"已经废弃,数组不能"+="字符串了

        //可用

        shoppingList += ["柚子"]

        

        //4.空数组的声明

        //let emptyArray1: Array = []//废弃

        //var emptyArray2 = Int[]()//废弃

        //可以用

        let emptyArray1:Array = [Int]()//用其声明空数组

        

        //5.非空数组

        //var threeDoubles = Double[](count: 3, repeatedValue: 0.0)   //[0.0, 0.0, 0.0]//废弃

        //可以用下面方法定义

        var threeDoubles = [Double](count:3, repeatedValue:0.0)   //[0.0, 0.0, 0.0]

        

        //6.可选类型

        let possibleNumber ="123"

        //let convertedNumber: Int? = possibleNumber.toInt() //toInt()函数已废弃

        //可以用下面的方法代替

        let convertenNumber:Int? =Int(possibleNumber)

        

        //7.字符和字符,字符串和字符已经不能相加了

        

        let dog: Character ="dog"

        let cow:Character ="cow"

        //let dogCow = dog + cow //已废弃

        //可以先把字符转换成字符串再相加(另外注意:要么加号前后都用空格隔开,要么都不要隔开,如果只隔开一边,swift中会报错)

        let dogCow =String(dog) + String(cow)

        

        //8.半封闭区域运算符(包头不包尾), (a..b)定义了范围从ab,包含a的值,但是不包含b的值,已经废弃可以

        let names = ["Anna","Alex", "Brian","Jack"]

        let count = names.count

        //for i in 0..count //已废弃

        //可以用封闭范围运算符, (a...b)定义了一个范围从ab,并且包含ab的值

        for iin 0...count

        

        //9.字符串中以下的这些特殊字符已经转译无效

        //单字节Unicode字符,\\xnn,其中nn是两个十六进制数

        //双字节Unicode字符,\\unnnn,其中nnnn是四个十六进制数

        //四字节Unicode字符,\\Unnnnnnnn,其中nnnnnnnn是八个十六进制数

        //例如:

        //let dollarSign = "\\x24" //$        //单字节转译已无效

        //let blackHeart = "\\u2665"   //♥    //双字节转译已无效

        //let sparkHeart = "\\U0001F496" //(这里是个红心)//四字节转译已无效

        

        //10.countElements计算一个字符串中的字符的数量,此函数已废弃

        let countStr = "wu xian hu lian"

        //println("countStr count is \\(countElements(countStr))")//报错

        //可使用下面方法代替

        print("countStr count is \\(countStr.characters.count)")

        

        //11.for - in 遍历字符串

        //这种写法已废弃

        //for character in "hello"

        //    print(character)

        //

        //可以这样写,使用characters

        for character in ("hello").characters

            print(character)

       

        

        //12.do-while循环已废弃,repeat-while来替换

        var vb = 1

        //do

        //    print("do while index is \\(vb)")

        //    vb++

        //while vb < 5

        //更改为

        repeat

            print("repeat while index is \\(vb)")

            vb++

        while vb < 5

        

        //13.函数可以有多个输入参数,写在圆括号中,用逗号分隔

        func minusResult(start: Int, end: Int) -> Int

            return end - start

       

        //函数的调用

        minusResult(1,10//这样调用的方法已经废弃

        //改成这样写(多个参数时,除了第一个参数以外,其他参数必须写参数名)

        minusResult(1,end: 10)

        

        //14.简写外部参数名已经废弃

        //如果你需要提供外部参数名,但是局部参数名已经定义好了,那么你不需要写两次这些参数名。相反,只写一次参数名,并用井号(#)作为前缀就可以了(1.0版本)。这告诉 Swift 使用这个参数名作为局部和外部参数名。

        //func containsCharacter(#string: String, #characterToFind: Character) -> Bool //#已废弃

        //可以这样写(除了第一个外部参数名不可省略,其他外部参数名可以省略,并且局部参数名可以作为外部参数名)

        func containsCharacter(string1 string: String, characterToFind: Character,chara:Character ) -> Bool

        //这样定义参数名,使得函数体更为可读,清晰,同时也可以以一个不含糊的方式被调用

        let containsAVee = containsCharacter(string1: "qwertyuiop", characterToFind: "y",chara:"r")

        print(containsAVee)

        

        //15.sort函数

        //var reversed = sort(names,backwards)//这种写法已经废弃

        //可以这样写

        var reversed = names.sort(backwards)

        

        //16.猜测还有很多入sort函数的写法

        //sort(names,backwards)都已废弃,而被改成

        //names.sort(backwards)

        //如果遇到类似情况可以试一下

以上是关于文件夹操作大全(swift)的主要内容,如果未能解决你的问题,请参考以下文章

CC++文件操作大全

Python文件操作大全

File 文件操作类 大全

整理C#文件操作大全(SamWang)

python文件和目录操作方法大全(含实例)

java文件操作方法大全