如何在 iOS 的文档目录中保存带有唯一标签的文件?
Posted
技术标签:
【中文标题】如何在 iOS 的文档目录中保存带有唯一标签的文件?【英文标题】:How can i save file with unique tag in Document Directory in iOS? 【发布时间】:2014-10-31 10:43:49 【问题描述】:注意:文件名由用户给出
在我的一个应用程序中,我需要在文档目录中创建具有任何唯一标签的文件(最好在字符串中给出标签!)。
我已经搜索过了,但没有运气。我知道如何在文档目录中创建文件,但卡在给它 uniqe 标签。
如果有人做过,请告诉我该怎么做。
【问题讨论】:
您可以将文件名添加为日期,例如mmddyyhhmmss
。所以每个文件名都是唯一的。
您可以添加数字作为后缀,例如 abc_1 、 xyz_2 。每次创建文件时增加数字并将该数字保存到 NSUserDefault。这样你就可以实现你想要的。我知道你想要字符串作为标签,但它可能会有所帮助。
【参考方案1】:
我已经使用时间间隔来保存唯一的文件。
int timestamp = [[NSDate date] timeIntervalSince1970];
NSString *fileName = [NSString stringWithFormat:@"%d",timestamp];
编辑:
// Or As you said if fileName is given by user.
NSString *userFileName = [NSString stringWithFormat:@"%@_%d",USER_GIVEN_NAME,timestamp];
// Here USER_GIVEN_NAME is a string which is file name from user.
用户是否提供相同的名称无关紧要,因为每当您尝试保存文件时,时间的一部分会发生变化,您将获得唯一的时间间隔。
【讨论】:
文件名由用户指定。因此,如果可能,请提供其他解决方案。我想我需要更新我的 que! 还有一件事,如果再次保存相同的文件,它如何管理?? 这有什么问题?您只需在最后添加时间戳,例如[NSString stringWithFormat:@"%@_%d",FILE_NAME_BY_USER,timestamp];
。它变得独一无二,因为时间戳永远不会相同。【参考方案2】:
您可以使用时间戳(作为 Kampai 的回答),或者您可以在文件名中附加日期以使名称独一无二,如下面的代码所示
NSCalendar *sysCalendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDateFormatter *df = [[NSDateFormatter alloc]init];
df.calendar = sysCalendar;
[df setTimeZone:[NSTimeZone systemTimeZone]];
[df setDateFormat:@"mmddyyyyHHmmss"];
NSString *strDate = [df stringFromDate:[NSDate date]];
NSString *name = [NSString stringWithFormat:@"%@_%@",@"yourfilename",strDate];
也许这会对你有所帮助。
【讨论】:
timestamp
变量是int
的类型。它会在NSString *name = [NSString stringWithFormat:@"%@_%@",@"yourfilename",timestamp];
行中为您提供类型说明符警告。请将%@
替换为%d
。
@Kampai 对不起,我复制了你的台词 :)以上是关于如何在 iOS 的文档目录中保存带有唯一标签的文件?的主要内容,如果未能解决你的问题,请参考以下文章