当前位置: 首页 > 面试题库 >

在Swift中访问temp目录

柳德义
2023-03-14
问题内容

我试图在Swift中访问temp目录。在Objective-C中,我可以使用以下代码进行操作:

- (NSString *)tempDirectory {

    NSString *tempDirectoryTemplate =
    [NSTemporaryDirectory() stringByAppendingPathComponent:@"XXXXX"];
    const char *tempDirectoryTemplateCString = [tempDirectoryTemplate fileSystemRepresentation];
    char *tempDirectoryNameCString           = (char *)malloc(strlen(tempDirectoryTemplateCString) + 1);
    strcpy(tempDirectoryNameCString, tempDirectoryTemplateCString);
    char *result                             = mkdtemp(tempDirectoryNameCString);
    if (!result) {
        return nil;
    }
    NSString *tempDirectoryPath = [[NSFileManager defaultManager] stringWithFileSystemRepresentation:tempDirectoryNameCString length:strlen(result)];
    free(tempDirectoryNameCString);
    return tempDirectoryPath;
}

但是,对于将类型从Objective-C转换为Swift const char *或从Swift转换为类型,我有些困惑
CMutablePointer<CChar>。我应该查看任何文件吗?

谢谢。


问题答案:

怎么样:

func createTempDirectory() -> String? {
    let tempDirectoryTemplate = NSTemporaryDirectory().stringByAppendingPathComponent("XXXXX")

    let fileManager = NSFileManager.defaultManager()

    var err: NSErrorPointer = nil
    if fileManager.createDirectoryAtPath(tempDirectoryTemplate, withIntermediateDirectories: true, attributes: nil, error: err) {
        return tempDirectoryTemplate
    } else {
        return nil
    }
}

它没有回答您有关char *的问题,但它更干净…

NSFileManager参考在这里。



 类似资料:
  • 问题内容: 下面的代码可以正常工作,但是每次运行时都会将字体文件的副本保留在temp目录中。这些文件名为 +〜JF7154903081130224445.tmp ,其中每个创建的文件的数字似乎都是随机的。 我在sun.com的论坛上以及在Web上的其他资源中发现了多年的讨论,这些讨论被认为是JDK中的错误,从1.5.0_06升级到1.5.0_08可以解决问题;但是,我使用的版本是更高版本(1.6.

  • 问题内容: 在这段代码中,我编写了一个真正无用的枚举,该枚举定义了Int或Float 的可能。 我无法理解如何访问通过关联设置的值。如果我尝试打印它,我得到的只是 问题答案: 该值与枚举的实例相关联。因此,要在不进行开关的情况下访问它,您需要使一个吸气剂并使其显式可用。如下所示: 也许将来可能会自动创建类似的内容,或者为该语言添加更短的便利性。

  • 问题内容: 我正在寻找一种使用Swift代码在我的应用程序中访问SQLite数据库的方法。 我知道我可以在Objective C中使用SQLite包装器并使用桥接头,但是我希望能够完全在Swift中完成此项目。如果可以的话,有没有办法做到这一点,有人可以将我指向一个引用,该引用显示了如何提交查询,检索行等。 问题答案: 虽然您可能应该使用许多SQLite包装器之一,但如果您想知道如何自己调用SQL

  • 问题内容: 我知道如何使用 prepareForSegue函数中的segues传递数据,但是我有一个TableViewCell,从那里有两个可能的segues到两个不同的ViewControllers(现在让我们说A,B)。在这里建议最好将segues连接到View控制器,而不是将tableCell本身连接​​,事实如此,效果很好。但是我想在单击单元格时将信息传递给第二个View控制器,因此如何访

  • 问题内容: Xcode 8 beta 4中的新增功能桥接到Swift 协议类型。处理失败的时,这会影响StoreKit 。您应该检查以确保没有发生错误,因为交易被取消了才知道是否向用户显示错误消息。您可以通过检查错误的完成此操作。但是使用代替,没有定义。我还无法弄清楚如何从中正确获取错误代码。 这在Swift 3的先前版本中有效: 现在是一个not ,不是成员。 问题答案: 在xCode 8和Sw

  • 本文向大家介绍windows 服务器注意windows的temp临时目录(temp文件过大问题),包括了windows 服务器注意windows的temp临时目录(temp文件过大问题)的使用技巧和注意事项,需要的朋友参考一下 windows解压缩包、安装软件时,会生成一些临时文件存放在temp目录中,windows不会自动删除这些文件。 临时文件目录可以在环境变量中查看和配置 在工作机or个人P