Skip to content

Instantly share code, notes, and snippets.

@shinokaro
Last active October 28, 2023 08:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shinokaro/22e45f2c8bff3b5145bea263445d06d0 to your computer and use it in GitHub Desktop.
Save shinokaro/22e45f2c8bff3b5145bea263445d06d0 to your computer and use it in GitHub Desktop.
Windows longest path size
# このコードで作成されたフォルダーの削除には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