From: gabrielnagy@... Date: 2021-05-14T20:03:47+00:00 Subject: [ruby-core:103855] [Ruby master Bug#12551] Exception accessing file with long path on windows Issue #12551 has been updated by gabuscus (Gabriel Nagy). Hello, I managed to compile Ruby with Visual C++ and long paths support by using an application manifest. I validated some basic things like executing a script from a really long path, and creating a directory with path over 255 characters. This is the code, which works, but I'm hardcoding stuff since I don't know where would be the best place to put it: https://github.com/GabrielNagy/ruby/commit/eb785c9a567ce058b7e2f16d3a1f53014f245687 I'd appreciate if someone could point me to how I could implement this in a cleaner way. Thanks! ---------------------------------------- Bug #12551: Exception accessing file with long path on windows https://bugs.ruby-lang.org/issues/12551#change-91976 * Author: Maturin (Lars Benner) * Status: Open * Priority: Normal * ruby -v: ruby 2.3.0p0 (2015-12-25 revision 53290) [x64-mingw32] * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- Accessing file with a long file name causes this exception: C:/Projects/Head/Build/cm/testdir01/testdir02/testdir03/testdir04/testdir05/testdir06/testdir07/testdir08/testdir09/testdir10/testdir11/testdir12/testdir13/testdir14/testdir15/testdir16/testdir17/testdir18/testdir19/testdir20/testdir21/testdir22/longtestfile.name.txt repro_lstat_exception.rb:42:in `stat': No such file or directory @ rb_file_s_stat - C:/Projects/Head/Build/cm/testdir01/testdir02/testdir03/testdir04/testdir05/testdir06/testdir07/testdir08/testdir09/testdir10/testdir11/testdir12/testdir13/testdir14/testdir15/testdir16/testdir17/testdir18/testdir19/testdir20/testdir21/testdir22/longtestfile.name.txt (Errno::ENOENT) from repro_lstat_exception.rb:42:in `block in
' from repro_lstat_exception.rb:13:in `chdir' from repro_lstat_exception.rb:13:in `
' Can be reproduced with the attach script. I used windows 7 64 bit and an NTFS file system. For me it looks like, it has something to do with the legacy MAX_PATH_LENGTH of 260 characters. See https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx#maxpath for more information. Originally I discovered the bug with JRuby (https://github.com/jruby/jruby/issues/3995). With older Ruby version, I tried 1.8.5, it is working. ---Files-------------------------------- long_file_name_error.zip (10.7 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: