से बड़ा फ़ाइल नाम पाने के लिए मैं एक उपकरण है जो पैरामीटर के रूप में कुछ फ़ाइल नाम लेता है बनाना चाहते, लेकिन जब मैं इस कोड का उपयोग:कैसे ARGV
ARGV.each do|a|
puts "Argument: #{a}"
end
और मैं खींचें का उपयोग और ड्रॉप या "भेजने के लिए" Windows में , मुझे लघु फ़ाइल नाम मिलता है। तो "C:\Ruby193\bin\test\New Text Document.txt"
जैसी फ़ाइल C:\Ruby193\bin\test\NEWTEX~1.TXT
तर्क के रूप में बन जाती है।
जब मैं कमांडलाइन से स्क्रिप्ट चलाता हूं, तो लाइफफिल्नेम पैरामीटर के रूप में कोई समस्या नहीं होती है।
जब मैं ड्रैग और ड्रॉप या भेजता हूं तो मुझे लंबा फ़ाइल नाम कैसे प्राप्त होता है?
http://www.varioustopics.com/ruby/518646-rre-ruby-cygwin-and-paths.html पर मिला 210 की आवश्यकता होती है 'लगता है' 'fileutils' की आवश्यकता होती है 'Win32API' डीईएफ़ get_long_win32_filename (short_name) MAX_PATH = 1024 long_name = "" * MAX_PATH lfn_size = Win32API.new ("kernel32", "GetLongPathName", [ ' की आवश्यकता होती है पी ',' पी ',' एल '],' एल ')। कॉल (short_name, long_name, max_path) वापसी (1..max_path)। शामिल करें? (Lfn_size)? long_name [0..lfn_size-1]: लघु_नाम अंत ARGV.each do | a | डालता है get_long_win32_filename (ए) अंत – peter