1

このメソッドを使用して、writeToFile:atomically:暗号化されたデータをテキストファイルに書き込みます。問題は、ユーザーが暗号化するファイルと同じように保存する必要のあるファイルで、私が選択した拡張子を使用することです。これが私がこれまでに持っているものです:

[encryptedData writeToFile:[[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop"] 
    stringByAppendingPathComponent:@"encryptedfile.txt.kry"] atomically:YES];
                                           ^//fileName here

ご覧のとおり、暗号化されたファイル名はencryptedfile.txt.kryとしてハードコードされています。ただし、ユーザーが暗号化するファイル「test.avi」を選択した場合、デスクトップに書き込まれる暗号化されたファイルの名前はtest.avi.kryにする必要があります。したがって、NSBundleのように、ofType:が必要です。ここに使用できるNSStringメソッドがいくつかあることは知っていますが、忘れてしまいました。

ありがとう!

4

1 に答える 1

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];
于 2011-09-04T04:34:13.573 に答える