平滑运算符:在写入文件时重命名文件

Posted

技术标签:

【中文标题】平滑运算符:在写入文件时重命名文件【英文标题】:Smooth Operator: Rename a file while writing to it 【发布时间】:2020-11-20 08:27:43 【问题描述】:

在 Linux 中(可能也在 Windows/OSX 中)如果我们打开要写入的文件并在写入时重命名它,raku 过程会顺利进行并继续按应有的方式写入文件。

但是在重命名发生时,我们如何才能找到文件的新名称(路径)?

IO::Notification 不可行,因为它没有提供其他信息,只提供一般描述:

FileRenamed or FileChanged

有办法吗?

【问题讨论】:

【参考方案1】:

简短回答:不,据我所知。

这里有一些技术背景:MoarVM 上的 Rakudo(这是唯一支持 IO::Notification afaik 的后端)依赖于 libuv 来实现此功能。如果libuv 不支持,Rakudo 支持的可能性很小。

我不知道libuv 是否支持该功能。如果是这样,我建议您在 MoarVM 中提出问题以引起注意。或者更好的是,编写一个 Pull Request 来实现该功能。

【讨论】:

根据 libuv 文档 (docs.libuv.org/en/v1.x/guide/filesystem.html#file-change-events),据我所知,那方面什么都没有!无论如何,谢谢!!!

以上是关于平滑运算符:在写入文件时重命名文件的主要内容,如果未能解决你的问题,请参考以下文章

注销时重命名文件

在 PySpark 中将数据帧写入 CSV 后重命名文件 [重复]

在python中实现对文件的写入,读取,复制,批量重命名

防止用户在从远程 ftp 服务器 cocoa 流式传输文件时重命名文件

文件写入,插入运算符和写入函数的区别?

在php中上传时重命名文件