cocoa - 如何确保 NSString 路径(文件名)安全

标签 cocoa string nsstring filenames

我正在使用非常棘手的战斗方法:)来使像Fi?le*/Name这样的字符串可以安全地用作File_Name这样的文件名。 我确信有一种 cocoa 方法可以将其转换。我确信最好的提问地点就是这里:)

谢谢!

最佳答案

这将根据 Ismail 的无效字符集删除文件名中任何位置的所有无效字符(我尚未验证他的字符集有多完整)。

- (NSString *)_sanitizeFileNameString:(NSString *)fileName {
    NSCharacterSet* illegalFileNameCharacters = [NSCharacterSet characterSetWithCharactersInString:@"/\\?%*|\"<>"];
    return [[fileName componentsSeparatedByCharactersInSet:illegalFileNameCharacters] componentsJoinedByString:@""];
}

使用 ComponentsSeparatedByCharactersInSet 的想法归功于 Peter N Lewis:
NSString - Convert to pure alphabet only (i.e. remove accents+punctuation)

关于cocoa - 如何确保 NSString 路径(文件名)安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1281576/

相关文章:

c# - 无法在c#中的文本框中输入负数

ruby - Ruby 缺少的 string#unshift 最地道的替代品是什么?

objective-c - 从一位整数生成两位数的字符串

ios - 获取字符在 NSString 中的位置

objective-c - 在 NSString 中搜索确切的词

objective-c - 播放 NSSound 两次

objective-c - 如何使用UCKeyTranslate

cocoa - CoreData 按属性划分的唯一对象

objective-c - 如何使用 NSCoding 存储 NSUInteger?

perl - 如何在 Perl 中插入大量空格?