我使用writeToFile:atomically:
方法将一些加密数据写入文本文件。问题是,需要保存的文件必须是用户加密的文件,我选择的扩展名。以下是我到目前为止的情况:
[encryptedData writeToFile:[[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop"]
stringByAppendingPathComponent:@"encryptedfile.txt.kry"] atomically:YES];
^//fileName here
如您所见,加密的文件名被硬编码为encryptedfile.txt.kry。但是说用户选择要加密的文件“test.avi”,写入桌面的加密文件应命名为test.avi.kry。所以应该有ofType:,就像在NSBundle中一样。我知道这里有一些我可以使用的NSString方法,但已经忘记了。
谢谢!
答案 0 :(得分:1)
你能不能将.kry附加到文件名上?
如果您有路径,只想要文件名,则可以使用- (NSString *)lastPathComponent
:
NSString *filename = [filePath lastPathComponent];
[encryptedData writeToFile:[[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop"]
stringByAppendingPathComponent:[filename stringByAppendingString:@".kry"] atomically:YES];
如果您想要没有扩展名的文件名,可以使用- (NSString *)stringByDeletingPathExtension
:
NSString *filename = [[filePath lastPathComponent] stringByDeletingPathExtension];