gpt4 book ai didi

objective-c - 有可以打开的文件吗?

转载 作者:行者123 更新时间:2023-12-03 01:06:06 27 4
gpt4 key购买 nike

简短版本:我想我要求文件太早了,但它假装它已经准备好了。我错过了什么吗?

稍长的版本:我正在将文件写入磁盘。在此之前,我让用户添加一些元数据,包括新文件名。用户完成后,屏幕消失,程序将文件写入磁盘。然后用户可以查看文件列表。该列表是通过读取文件夹的内容生成的。新文件在文件列表中,但是当我尝试从文件中提取信息以显示(例如文件大小)时,程序崩溃了。据我所知,发生崩溃的原因是,虽然文件名存实亡,但无法读取。 (顺便说一下,这些是小文件 - 几百 k。)

首先,是否有可能文件出现在目录中但还没有全部存在?
一种
其次,如果是这样,我如何检查文件是否可以读取?

非常感谢。

更新:

谢谢。我会尝试添加更多信息。我正在使用 AVAudioRecorder 录制音频文件。初始化行是:

soundrecording = [[AVAudioRecorder alloc] initWithURL:url settings:recordSettings error:&error];

该程序通过它的 UI 更新和计量以及所有这些。当音频停止时,我调用:
[soundrecording stop];

当其他所有内容都更新并准备好继续前进时,我会调用:
[soundrecording release];
soundrecording=NULL;

据我了解,这应该负责释放文件,是吗?

再次感谢。

最佳答案

我要做的第一件事是确认您对文件尚未准备好是正确的。要做到这一点,在写作之后和阅读之前让你的程序休眠一两秒。几百 KB 的准备时间应该不会超过这个时间。

如果它仍然失败,我的猜测是你没有关闭你用来写它的文件句柄。它可能还没有准备好读取,因为文件系统认为您可能会继续写入。

通常,检查文件是否准备就绪的方法是尝试打开它。如果成功,您可以阅读它。或者,如果它因错误而失败,您可以优雅地处理错误:

  • 在命令行实用程序中,您可能会打印错误并退出,用户可以重试。
  • 如果它是不应退出的后台程序,例如服务器,则可以记录错误。您也可以在延迟后自动重试。如果这是一个很大的错误,您可能希望程序通过电子邮件通知您。
  • 在 GUI 窗口应用程序中,您可能希望显示错误对话框或面板,然后让用户有机会重试。
  • 关于objective-c - 有可以打开的文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1950612/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com