swift之文件操作

一、创建文件


func createFile(fileName: String) {
    let filePath = Bundle.main.path(forResource: "Demo", ofType: "xml")   
    fileManager.createFile(atPath: filePath+"\(fileName).xml", contents: nil, attributes: nil)
        
}

二、删除文件

func deleteFile(fileName: String?) {
    if fileName == nil {
        return
    }
    let filePath = Bundle.main.path(forResource: "Demo", ofType: "xml")
    let dbexits = fileManager.fileExists(atPath: filePath+"\(fileName!).xml")
    if dbexits {
        try! fileManager.removeItem(atPath: filePath+"\(fileName!).xml")
    }
}

三、读取文件中的数据

func readFile(filePath: String) -> Bool {
        //获取文件路径
        //        let file = Bundle.main.path(forResource: "Demo", ofType: "xml")
        
    let url = URL(fileURLWithPath: filePath)
    //获取文件内容
    let xmlData = try? Data(contentsOf: url)
    //print(String(data:xmlData, encoding:String.Encoding.utf8))
    if xmlData == nil {
        NSLog("读取文件失败!")
        return false
    }
    return true
        
}

四、把字符串写入指定文件中

func writeStrToFile(receivedString: NSString) {
        
    let str = receivedString as String
    let wr = NSMutableData()
    wr.append(str.data(using:String.Encoding(rawValue: String.Encoding.utf8.rawValue))!)
        
    let manager = FileManager.default
    let urlsForDocDirectory = manager.urls(for:.documentDirectory, in:.userDomainMask)
    let docPath = urlsForDocDirectory[0]
    let file = docPath.appendingPathComponent("\(Demo!).xml")
    let writeHandler = try? FileHandle(forWritingTo:file)
    if writeHandler != nil {
        writeHandler!.seekToEndOfFile()
        writeHandler?.write(wr as Data)
    }
             
}

五、获取指定路径中的所有文件名

func getPathAllFileName(path:String) -> [String]{
    var fileNameArray:[String] = []
    do {
        fileNameArray = try FileManager.default.contentsOfDirectory(atPath: path)
            
    } catch let error as NSError {
        print("get file path error: \(error)")
    }
        
    return fileNameArray
}

六、获取指定路径中的所有xml文件名称

func getPathAllXmlFile(path:String) -> [String]{
    var fileNameArray:[String] = []
    var xmlFileArray:[String] = []
    do {
        fileNameArray = try FileManager.default.contentsOfDirectory(atPath: path)
        for fileName in fileNameArray {
            if fileName.hasSuffix(".xml") {
                let xmlFileName = fileName.prefix(fileName.count-4)
                xmlFileArray.append(String(xmlFileName))
            }
        }
    } catch let error as NSError {
        print("get file path error: \(error)")
    }
        
    return xmlFileArray
}

 

 

 

 

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Ceph系统中,可以通过封装的cephSwiftOperator来实现对Swift对象存储进行文件上传操作。根据引用,ceph支持文件流和字节数组方式传递文件。对于文件不是很大的情况,可以直接采用字节数组方式进行上传。 根据引用,在云计算项目交付中,如果需要将按照文件夹分类的若干原始文件自动压缩打包上传到Swift对象存储中,可以使用Swift的API请求来实现。通过获取不同文件夹对应的类别、文件名称、文件描述等信息,可以将文件按照要求自动上传到Swift对象存储中。 而根据引用,为了使得程序更具有通用性和简单性,可以选择使用curl来进行Swift的API请求,以实现对文件及容器的增删改查操作。 因此,要实现Swift上传文件操作,可以使用cephSwiftOperator封装的API请求,通过字节数组方式或者文件流方式传递文件,并根据需求获取文件的相关信息进行上传。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [智牛股_第9章_CEPH_Swift+文件上传与下载](https://blog.csdn.net/guan1843036360/article/details/128414864)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [openstack对象存储系统之swift项目实战自动化压缩和上传文件(三)](https://blog.csdn.net/u014374009/article/details/118566048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值