Chcę uczynić narzędzie, które ma kilka nazw jak parametry, ale kiedy używam tego kodu:Jak zdobyć długą nazwę pliku z ARGV
ARGV.each do|a|
puts "Argument: #{a}"
end
i używam przeciągnij i upuść lub „wyślij do” w systemie Windows , Dostaję krótką nazwę pliku. Plik taki jak "C:\Ruby193\bin\test\New Text Document.txt"
staje się C:\Ruby193\bin\test\NEWTEX~1.TXT
jako argumentem.
Nie ma problemu, gdy uruchamiam skrypt z wiersza poleceń, a longfilenames jako parametry.
Jak uzyskać długą nazwę pliku, gdy używam przeciągania i upuszczania lub wysyłania do?
znalazles go na http://www.varioustopics.com/ruby/518646-rre-ruby-cygwin-and-paths.html wymaga 'odnaleźć' wymagają 'fileutils' wymagają 'Win32API' def get_long_win32_filename (SHORT_NAME) max_path = 1024 long_name = "" * max_path lfn_size = Win32API.new ("Kernel32", "GetLongPathName" [” P ',' P ',' L '],' L '). Call (short_name, long_name, max_path) return (1..max_path) .include? (Lfn_size)? long_name [0..lfn_size-1]: short_name koniec ARGV.each do | a | stawia umieszcza get_long_win32_filename (a) koniec – peter