问题标签 [nsfilehandle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
366 浏览

ios - 当文件不再存在时,为什么 NSFileHandle 不抛出异常

我正在使用 NSFileHandle 的 fileHandleForWritingAtPath 打开文件句柄并写入文件(附加到文件末尾)。因为我总是需要写入它,所以我从不关闭手柄或在写入时检查它是否存在。

我需要支持一个案例,由于某种原因第三方来删除了文件,也就是说,我有一个有效的句柄正在进入一个不再存在的文件(内核应该知道句柄是坏的)。预料到这一点,我包装了对 writeData 的调用:使用 try catch,我希望该方法抛出异常(为什么它返回 void 而未写入字节超出了我的理解)。

它不是。为什么?

0 投票
1 回答
1591 浏览

ios - 从远程 URL 下载视频到设备并通过 AVPlayer 流式传输

我目前正在做的是,我有一个包含 MP4 文件的远程 URL。我使用 NSData 和 NSFileManager 将其下载到文件中(因为我想缓存文件)。现在我开始使用 AVPlayer 播放文件。

这一切都有效。但问题是,当视频在几秒钟后缓冲时,无法恢复播放。

笔记:

AVPlayer 的状态不会更改为 Pause。

即使视频停止,视频的当前时间也会继续运行。

无论如何我可以在缓冲区发生之前暂停视频吗?提前致谢。

0 投票
0 回答
515 浏览

objective-c - 为标准输出设置 NSFileHandle 来终止 NSTask

我有一批创建和运行NSTask实例的代码。在运行之前,我为任务的标准输出设置了一个NSFileHandle女巫直接写入我创建的文件。

有时 NSTask 在完成之前被代码(通过发送terminate命令)终止,有时它在没有任何外部终止的情况下完成。

当 NSTask 成功完成时,我设置的将输出写入的文件应该是:full of text。但是,当我在代码中终止任务时,文件没有任何内容,即使我知道 NSTask 正在生成输出。

这是我的代码:

我认为这种方法会将数据写入文件,因为它是由命令生成的。如果这是真的,那么即使命令被强制终止,文件也应该有一些信息。那为什么不呢?

以防万一我弄错了并且这不会在生成的输出时保存输出,您能指出我这样做的方法吗?

0 投票
1 回答
303 浏览

objective-c - 为大文件和小文件创建 NSFileHandle 之间是否存在性能差异?

这个问题让我觉得几乎是愚蠢的,但我只是想检查一下自己的理智。出于各种原因,我将一堆文件合并为一个单独的巨型文件,然后将其作为资源打包到我的 iOS 应用程序中。然后我使用 NSFileHandle 打开文件,寻找正确的位置,然后只读出我想要的字节。

这样做和读取松散文件之间有什么性能差异吗?或者,假设我可以选择只使用一个单一的巨型文件,而不是 10 个中型(但仍连接)文件,“打开”大文件和小文件之间是否存在性能差异?

由于我确切地知道要查找的位置,并且我只读取我想要的字节,所以我看不出会有什么不同。但是,嘿 - 事实证明是奇怪的事情。提前致谢!

0 投票
1 回答
847 浏览

ios - 如何在我的 NSFIleHandle 处理中捕获 EPIPE?

我在我的 iOS 应用程序中遇到了 EPIPE 问题,并且它没有被 @try/@catch/@finally 块捕获。我怎样才能捕捉到这个信号(SIGPIPE,可能)......

我在我的应用程序中构建了一个“网络代理”,它将处理某些类型的 URL - 在这种错误情况下,似乎远程端(也在我的应用程序中,但隐藏在 iOS 库中)关闭了它的套接字端. 我没有收到通知(我应该吗?有什么我应该在 NSFileHandle 注册的东西可能对这里有帮助吗?)。

我已经将此代理基于 Matt Gallagher 放在一起的 HTTPServer(可在此处获得),问题出在HTTPRequestHandler他放在一起的类的子类中。这是代码(此代码等效startResponse于基类中的方法):

这是崩溃时控制台日志中显示的内容:

似乎因为另一端关闭了管道write()失败了,所以如果有人能指出我如何发现它已经关闭而不尝试向它写入数据,或者任何使它不会崩溃的程序,那将是非常有帮助。

0 投票
1 回答
164 浏览

ios - 如何 NSFileHandle 从另一个应用程序获取的文件

我目前正在尝试从另一个应用程序实现打开文件。当我使用第三方应用程序(如文档)并使用我的应用程序打开文件时,我似乎无法使用 NSFileHandle 打开它。

调用 AppDelegates 方法后:

我得到一个这样的网址:

我试图手动删除file://localhost/private以看起来像 NSBunble 路径,但没有运气......

有没有人有一种简单的方法来使用 NSFileHandle 打开从该委托方法获得的 URL?

0 投票
2 回答
602 浏览

ios - 将 NSFileHandle seekToFileOffset 设置为行尾

我想要做的是将一个字符串写入文件中每一行的末尾。现在我有一个 NSFileHandle 写入文件,但只在文件末尾。我怎样才能把它设置到最后就行了?

0 投票
1 回答
3893 浏览

objective-c - 包含十六进制的 NSString 转换为等效的 ascii

我有一个具有十六进制信息的 NSString,例如

来自 NSData。我需要做的是将十六进制数据的 NSString 转换为 Ascii,即:

您可能会说这是一个 M4A 文件。我使用 NSFileHandle 将文件的第一部分加载到 NSData。然后我将它存储到 NSString 中:

任何人都知道如何直接转换 NSData 或将 NSString 转换为 ascii?谢谢!

0 投票
2 回答
1385 浏览

python - Python:文件处理程序问题:删除文件而不留下 .nsf 文件

我有以下方法来处理我的 python 程序中的日志记录

这是一个大型数据收集代码库,为了避免远程服务器上的配额限制,我实现了以下 gzip 和 tar 程序,

我在嵌套的 for 循环中进行数据收集过程,并按如下所述调用记录器:

一切正常,但是当它被执行时,在删除文件 .nsf 文件残留物后会留下,同时导致配额问题保持原样。

所以我添加了以下代码段来关闭日志文件处理程序,但现在我最终得到以下错误:

关闭日志文件的代码:

上面的代码最终给了我这个错误:

这是处理程序关闭代码段时 main 方法的样子:

我究竟做错了什么?我处理记录器是否错误?还是我过早关闭文件?

0 投票
1 回答
1535 浏览

cluster-computing - 远程集群上的过时 NFS 文件句柄问题

我需要使用一个名为ngspice的工具运行一堆模拟,并且由于我想运行一百万个模拟,我将它们分布在一组机器上(主机+从机开始,每个机器有 12 个内核)。

这是命令: ngspice deck_1.sp; ngspice deck_2.spETC。,

第 1 步:使用 python 脚本生成这些 sp 文件。

第 2 步:Python 调用GNU 并行在主/从之间分发 sp 文件并使用 ngspice 运行模拟

第 3 步:我对结果进行后处理(python 脚本)。

我一次只生成和处理 1000 个文件以节省磁盘空间。所以上面的步骤 1 到 3 循环重复,直到模拟一百万个文件。

现在,我的问题是:

当我第一次执行循环时,我没有问题。这些文件分布在主/从之间,直到 1000 次模拟完成。当循环第二次开始时,我清除了现有的 sp 文件并重新生成它们(步骤 1)。现在,当我出于某种奇怪的原因执行步骤 2 时,没有检测到某些文件。经过一些调试,对于在步骤 1 中创建的某些 sp 文件,我得到的错误是“过时的 NFS 文件句柄”和“没有这样的文件或目录 deck_21.sp”等。

我暂停了我的 python 脚本并ls在目录中执行了一个“”,我看到这些文件确实存在,但就像错误指出的那样,这是因为过时的 NFS 文件句柄。此链接建议我重新安装客户端等,但我登录到我没有管理员权限安装的机器。有没有办法解决这个问题?

谢谢!