`

ios操作文件和字符串的示例代码

 
阅读更多

最近几天积累了一些示例代码,总结一下,熟练之前可以拷贝拿来用,节省到处找的时间

数组排序

数组中有多个文件full path,文件名中是带有时间戳的,所以想按照文件名排序,就可以实现按顺序上传了。代码如下:

    // 排序,需要根据时间戳确定上传的顺序
    NSArray *sorted = [zipFile sortedArrayUsingComparator:^NSComparisonResult(NSString *str1, NSString *str2) {
        NSString *fileName1 = [str1 lastPathComponent];
        NSString *fileName2 = [str2 lastPathComponent];
        NSStringCompareOptions options = NSCaseInsensitiveSearch | NSNumericSearch;
        return [fileName1 compare:fileName2 options:options];
    }];

zipFile是一个NSArray,里面是所有zip文件的path,在block里先将path截掉,只保留文件名,然后用NSString的compare方法来比较

遍历文件夹

拿到一个文件夹的path之后,要遍历此文件夹,得到所有文件和子目录的path

NSArray *fileList = [fileManager contentsOfDirectoryAtPath:@"/users/apple/Library" error:nil];

返回值是NSArray类型,元素是所有的文件和子目录

字符串拼接

如果字符串个数不多,那用NSString的各种stringByAppending方法就可以了,比如:

[@"abc" stringByAppendingString:@"def"];// abcdef

如果字符串的个数很多,用这个API就会非常难看,这个时候可以用stringWithFormat方法,比如:

[NSString stringWithFormat:@"%@,%@,%@", @"abc", @"def", @"ghi"];// abc,def,ghi

如果字符串的个数不确定,那上面2个方法就都不好用了,需要用NSMutableString,类似java里的StringBuilder

NSMutableString *result = [NSMutableString new];
    
[result appendString:first];
[result appendString:@","];

获取文件名

得到完整的path,经常想取出文件名:

[@"path/to/file.png" stringByDeletingLastPathComponent];// file.png

如果连扩展名都不想要:

[@"file.png" stringByDeletingPathExtension];// file

总之,在ios中操作文件夹和字符串还是很方便的,只要熟悉NSFileManager和NSString的API


分享到:
评论

相关推荐

    iOS 获取字符串首字母

    在提供的`ChineseLetter`文件中,可能包含了一些处理中文字符串首字母的示例代码或库,可以进一步学习和研究。通过这些方法,你可以根据项目的具体需求,高效地获取iOS应用中的字符串首字母,无论是英文还是中文。

    ios-富文本处理字符串.zip

    本资源“ios-富文本处理字符串.zip”显然是关于如何在iOS应用中实现这种功能的示例代码或教程。 首先,我们来看“指定字符串中特定字符串字体颜色和大小”这一知识点。在iOS中,我们可以使用NSAttributedString和...

    ios-改变字符串的颜色.zip

    这个名为"ios-改变字符串的颜色.zip"的压缩包可能包含一个示例项目或代码片段,用于展示如何动态地改变字符串中特定部分的颜色。在iOS应用中,我们通常使用`UILabel`、`UIButton`或者`UITextField`等文本视图来显示...

    IOS 字符串生成二维码

    本文将深入探讨如何在iOS应用中实现字符串到二维码的转换,主要基于`Libqrencode`库。 `Libqrencode`是一个开源的C语言编写的库,专门用于生成QR码。QR码(Quick Response Code)是一种二维条形码,能存储大量的...

    iOS属性字符串封装库

    在iOS开发中,属性字符串(NSAttributedString)是一种强大的文本处理工具,它可以为文本添加丰富的样式,如字体、颜色、下划线等。`MyAttributedString`是一个开源库,专门为iOS平台提供了对NSAttributedString的...

    uniapp +上传文件+安卓、ios文件选择

    以下是如何使用`uni.chooseFile`的示例代码: ```javascript uni.chooseFile({ type: 'all', // 可选值有:image、video、file,默认为image,此处设置为all,表示选择所有类型的文件 success: function(res) { ...

    iOS 上传文件到服务器

    示例代码中,`FTPUploadTest`可能是一个包含具体实现的测试项目,它可能包含以下关键组件: - `FTPClient`类:作为客户端,负责建立socket连接、发送文件和处理异常。 - `FTPRequest`类:用于封装文件上传请求,包括...

    ios-字符串转拼音.zip

    你可以通过查看和学习这个示例代码,了解具体的操作步骤和注意事项。 总的来说,汉字转拼音在iOS开发中是一种常见的需求,通过选择合适的方法和工具,我们可以有效地实现这一功能。对于初学者来说,理解并掌握这些...

    c++ 字符串读写

    C++标准库提供了`std::string`类,用于高效地管理和操作字符串。你可以创建、赋值、修改和比较字符串,也可以使用`+`操作符进行连接。例如: ```cpp std::string str1 = "Hello"; std::string str2 = "World"; std:...

    IOS整合支付宝支付微信支付示例项目

    提供的"Payment"压缩包可能包含了一个完整的iOS项目,其中已经集成了支付宝和微信的SDK,并提供了示例代码。开发者可以通过查看和运行这个项目,了解如何在实际代码中实现支付流程。需要注意的是,示例中的APPID和...

    ios 本地根据传入的字符串生成二维码的代码

    在iOS开发中,生成二维码是一项常见的任务,尤其在移动支付、信息分享等...在提供的压缩包文件`ZYYCodePayDemo-master-2`中,可能包含了一个完整的示例项目,你可以下载并研究其代码,以便更好地理解和应用这些知识点。

    ios-存储文件.zip

    在iOS开发中,数据持久化是一项至关重要的技术,它使得应用程序的数据可以在用户关闭或设备重启后仍然保持。本文将深入探讨“ios-存储文件....在实际项目中,只需根据提供的文档和示例代码,就能轻松集成并发挥其功能。

    quicklz cocos2dx 压缩 字符串压缩

    以下是一个简单的使用QuickLZ在Cocos2d-x中压缩字符串的示例: ```cpp #include "quicklz.h" std::string originalString = "这是一段需要压缩的字符串"; unsigned char compressedBuffer[originalString.size() *...

    安卓A-Z字母排序索引相关-匹配中文字符串的拼音首字母或英文字符串的首字母缩写.rar

    这个压缩包文件“安卓A-Z字母排序索引相关-匹配中文字符串的拼音首字母或英文字符串的首字母缩写.rar”很可能包含了一系列实现这一功能的代码示例。 匹配中文字符串的拼音首字母通常涉及到以下知识点: 1. 汉字转...

    iOS代码混淆的demo

    在iOS开发中,代码安全是至关重要的,尤其是在面临日益增加的逆向工程和黑客攻击时。本文将深入探讨iOS代码混淆技术,这是提高应用程序安全性的关键手段之一。代码混淆能够使原始代码变得难以理解,从而降低被恶意...

    iOS 通过 描述文件获取 UDID

    在iOS开发中,UDID(Unique Device Identifier)是设备的唯一标识符,它是一个40位的十六进制字符串,用于区分不同的iOS设备。在早期版本的iOS中,开发者可以自由使用UDID来追踪和识别用户设备,但在iOS 5之后,...

    IOS plist文件详解

    总结起来,iOS中的.plist文件是数据存储的重要手段,了解其结构和操作方式对于iOS开发者来说至关重要。无论是在应用设置、用户偏好还是轻量级的数据持久化方面,都有广泛的应用。通过LTReadWritePlist这样的实践项目...

    对文件操作C++代码

    接着使用`write`方法向文件中写入了字符串“c++文件操作”。之后,再次打开文件并使用`seekp`方法定位到文件末尾,继续追加内容。 读取文件时,使用`ifstream`以读取模式打开“2.txt”,并通过`read`方法将文件内容...

    ios demo,NSData和NSString之间的相互转换的源代码

    这个“ios demo,NSData和NSString之间的相互转换的源代码”提供了实现这种转换的示例代码。 首先,让我们深入了解一下NSData和NSString的基本概念: 1. **NSData**:NSData是Foundation框架中的一个类,它代表了...

    文本框指定字符串长度

    标题“文本框指定字符串长度”和描述“ios限制uitextfield字符长度”所指的就是如何在iOS中设置`UITextField`的字符限制。 首先,我们可以使用`UITextField`的代理方法来实现这一功能。`UITextField`遵循`...

Global site tag (gtag.js) - Google Analytics