Last active
October 28, 2023 08:06
-
-
Save shinokaro/22e45f2c8bff3b5145bea263445d06d0 to your computer and use it in GitHub Desktop.
Windows longest path size
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# このコードで作成されたフォルダーの削除にはGIT CMDを管理者権限で起動し、 | |
# rmdir c:\LongestPath /s | |
# を実行する。この方法以外で削除するとエラーが出ることがある。(アプリが最大パスに対応できていない) | |
Dir.chdir("c:\\") | |
first_dir = "LongestPath" | |
Dir.mkdir(first_dir) unless Dir.exist?(first_dir) | |
Dir.chdir(first_dir) | |
len = 247 | |
loop do | |
path = "d" * len | |
Dir.mkdir(path) unless Dir.exist?(path) | |
Dir.chdir(path) | |
rescue Errno::ENOENT | |
len -= 1 | |
break if len <= 0 | |
end | |
puts Dir.pwd.size # => 32762 | |
Dir.chdir(Dir.pwd.split("/")[0..-2].join("/")) | |
trg_dir = Dir.pwd | |
Dir.chdir(trg_dir) | |
challenge = "" | |
len = 259 | |
loop do | |
filename = "f" * len | |
challenge = File.join(trg_dir, filename) | |
File.open(challenge, "w").close | |
rescue Errno::ENOENT | |
len -= 1 | |
else | |
break | |
end | |
puts challenge.size # => 32762 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment