我可以使用我自己的文件名时,使用NSTemporaryDirectory



我正在生成一个PDF文件并将其保存到我的设备,然后从我的应用程序中通过电子邮件发送它。目前,它没有得到清除手动或自动,所以我在看NSTemporaryDirectory。我已经看了各种网站,也在这里为我的特定查询的答案,但找不到它。

我有以下功能:

+(NSString *)getTempFilePathName {
    NSString *tempFilePathName = nil;
    NSString *tempFileTemplate = [NSTemporaryDirectory() stringByAppendingPathComponent:@"tempfile.XXXXXX"];
    const char *tempFileTemplateCString = [tempFileTemplate fileSystemRepresentation];
    char *tempFileNameCString = (char *)malloc(strlen(tempFileTemplateCString) + 1);
    strcpy(tempFileNameCString, tempFileTemplateCString);
    int fileDescriptor = mkstemp(tempFileNameCString);
    if (fileDescriptor != -1) {
        // File opened successfully
        tempFilePathName = [[NSFileManager defaultManager] stringWithFileSystemRepresentation:tempFileNameCString length:strlen(tempFileNameCString)];
        close(fileDescriptor);
    }
    free(tempFileNameCString);
    return tempFilePathName;    
}

这返回给我一个包含完整路径和文件名的NSString,以文件名的'XXXXXX'组件结尾,替换为唯一的字母和数字组合。当我用它来保存PDF文件时,我需要修复扩展名为"。PDF"的"XXXXXX"位。最好我也想指定文件名本身,比如"Order-123.PDF"。

我可以编辑我的方法来传递一个文件名并在stringByAppendingPathComponent参数中使用它吗?每次调用此方法生成的目录名是否唯一?

我自己解决了这个问题。在调用上述例程的行之后,我做:

NSString *newFilePath = [tempNameStub stringByAppendingPathExtension:@"pdf"];   

.pdf添加到末尾

最新更新