gpt4 book ai didi

ruby - 使用 Ruby File.open 写入具有长文件名的外部文件

转载 作者:可可西里 更新时间:2023-11-01 11:15:20 25 4
gpt4 key购买 nike

当我尝试将 Ruby v2.3.3 中的文件写入 Windows 上的文件夹时出现错误。

这是我以前使用过很多次并且运行良好的代码。

File.open(file_name, "w+") { |out| out.puts "Hello" }

这适用于短文件名,但显然在大约 200 个字符的文件名(包括文件夹路径)时失败。我得到的错误是文件或文件夹不存在。该方法是创建文件,因此显然不需要预先存在。而且该文件夹确实存在——我测试了很多次。所以我不明白错误信息。

我试着用一个更短的文件名运行它,然后它工作正常。

有没有解决这个错误的方法?这真的是 Ruby 错误,还是更像是 Windows 限制?

最佳答案

how long a path can be in Windows 有一个硬性限制,大约 260 个字符:

In the Windows API (with some exceptions discussed in the following paragraphs), the maximum length for a path is MAX_PATH, which is defined as 260 characters.

每个操作系统都有某种限制,以允许 C 程序分配适当长度的缓冲区。 PATH_MAX 因操作系统而异,但通常在 255-1024 范围内。

This question更详细地介绍了这类事情对 Windows 的影响。

关于ruby - 使用 Ruby File.open 写入具有长文件名的外部文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57317695/

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