किसी भी डेवलपर के लिए फ़ाइल हेरफेर में महारत हासिल करना बहुत ज़रूरी है, और रूबी फ़ाइलों का कुशलतापूर्वक नाम बदलने के लिए सुंदर समाधान प्रदान करता है। यह गाइड विभिन्न तकनीकों का पता लगाता है, जिसमें एकल-फ़ाइल नाम बदलने से लेकर निर्देशिकाओं में जटिल बैच संचालन तक शामिल हैं।
विषयवस्तु की तालिका
- कार्यक्रम द्वारा फ़ाइलों का नाम क्यों बदलें?
- एकल फ़ाइल का नाम बदलना
- एक ही निर्देशिका में फ़ाइलों का नाम बदलना
- उपनिर्देशिकाओं में पुनरावर्ती रूप से फ़ाइलों का नाम बदलना
- कस्टम लॉजिक के साथ बैच फ़ाइलों का नाम बदलना
- मज़बूत त्रुटि संचालन
कार्यक्रम द्वारा फ़ाइलों का नाम क्यों बदलें?
अनेक फ़ाइलों से निपटते समय मैन्युअल फ़ाइल नाम बदलना अव्यावहारिक हो जाता है। स्वचालन कई लाभ प्रदान करता है:
- दक्षता: सैकड़ों या हज़ारों फ़ाइलों को शीघ्र और सटीक रूप से संसाधित करें।
- मानकीकरण: बेहतर संगठन के लिए संगत नामकरण सम्मेलनों को लागू करें।
- संस्करण नियंत्रण: फ़ाइल पुनरावृत्तियों को ट्रैक करने के लिए टाइमस्टैम्प या संस्करण संख्याएँ जोड़ें।
- कार्यप्रवाह एकीकरण: बड़े डेटा प्रसंस्करण पाइपलाइनों में फ़ाइल नाम बदलना सहज रूप से एकीकृत करें।
- डेटा सफाई: टाइपो को ठीक करें, अवांछित वर्णों को हटा दें और खोज क्षमता में वृद्धि करें।
एकल फ़ाइल का नाम बदलना
सबसे सरल परिदृश्य में एकल फ़ाइल का नाम बदलना शामिल है। रूबी का File.rename
विधि इसे सीधे संभालती है:
old_path = "/path/to/old_file.txt"
new_path = "/path/to/new_file.txt"
begin
File.rename(old_path, new_path)
puts "फ़ाइल का नाम सफलतापूर्वक बदल दिया गया!"
rescue Errno::ENOENT
puts "त्रुटि: फ़ाइल '#{old_path}' नहीं मिली।"
rescue Errno::EEXIST
puts "त्रुटि: फ़ाइल '#{new_path}' पहले से मौजूद है।"
rescue => e
puts "एक त्रुटि हुई: #{e.message}"
end
एक ही निर्देशिका में फ़ाइलों का नाम बदलना
एक ही निर्देशिका के भीतर कई फ़ाइलों का नाम बदलने के लिए, किसी पैटर्न से मेल खाने वाली फ़ाइलों का चयन करने के लिए Dir.glob
का उपयोग करें:
directory = "/path/to/files"
pattern = "*.txt"
Dir.glob("#{directory}/#{pattern}") do |file|
new_filename = file.gsub(/.txt$/, "_modified.txt") #नाम बदलने का उदाहरण तर्क
begin
File.rename(file, new_filename)
puts "नाम बदला गया: #{file} -> #{new_filename}"
rescue => e
puts "फ़ाइल #{file} का नाम बदलने में त्रुटि: #{e.message}"
end
end
उपनिर्देशिकाओं में पुनरावर्ती रूप से फ़ाइलों का नाम बदलना
उपनिर्देशिकाओं में फ़ाइलों का नाम बदलने के लिए, Dir.glob
के साथ **
वाइल्डकार्ड का उपयोग करें:
directory = "/path/to/files"
pattern = "*.txt"
Dir.glob("#{directory}/**/#{pattern}") do |file|
new_filename = file.gsub(/.txt$/, "_modified.txt")
begin
File.rename(file, new_filename)
puts "नाम बदला गया: #{file} -> #{new_filename}"
rescue => e
puts "फ़ाइल #{file} का नाम बदलने में त्रुटि: #{e.message}"
end
end
कस्टम लॉजिक के साथ बैच फ़ाइलों का नाम बदलना
अधिक जटिल परिदृश्यों के लिए, पुरानी फ़ाइलों के नाम को नए फ़ाइलों के नाम से मैप करने के लिए हैश का उपयोग करें:
directory = "/path/to/files"
renames = {
"file1.txt" => "new_file1.txt",
"file2.jpg" => "new_file2.jpg"
}
renames.each do |old_name, new_name|
old_path = File.join(directory, old_name)
new_path = File.join(directory, new_name)
begin
File.rename(old_path, new_path)
puts "नाम बदला गया: #{old_path} -> #{new_path}"
rescue => e
puts "फ़ाइल #{old_path} का नाम बदलने में त्रुटि: #{e.message}"
end
end
मज़बूत त्रुटि संचालन
फ़ाइलों के नहीं मिलने या मौजूदा फ़ाइलों जैसी समस्याओं को सुचारू रूप से प्रबंधित करने के लिए हमेशा व्यापक त्रुटि संचालन शामिल करें।