2011-09-04 3 views
1

일부 암호화 된 데이터를 텍스트 파일에 쓰려면 writeToFile:atomically: 메서드를 사용하고 있습니다. 문제는 사용자가 암호화 한 파일로 저장해야하는 파일과 내가 선택한 확장자입니다. 당신이 볼 수 있듯이파일 확장자 Cocoa에서 파일 이름을 분리 하시겠습니까?

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

가 암호화 된 파일 이름이 encryptedfile.txt.kry로 하드 코드 : 여기에 지금까지 가지고있는 것입니다. 그러나 사용자가 암호화 할 "test.avi"파일을 선택한다고 가정하면, 데스크탑에 작성된 암호화 된 파일의 이름은 test.avi.kry 여야합니다. NSFundle과 마찬가지로 ofType이 있어야합니다. 거기에 사용할 수 있지만 잊어 버린 몇 가지 NSString 메서드가 있습니다.

감사합니다.

답변

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]; 
+0

실수로 잘못을 a ']'로 시작하여 왜 처음에는 작동하지 않는지를 설명합니다. 이 무언가를 잊어 버리고 멍청한 놈이 결코 그것을 잊지 않을 것이다! 감사! –