Ruby Programming

रूबी में फ़ाइलों का नाम बदलना सीखें

Spread the love

किसी भी डेवलपर के लिए फ़ाइल हेरफेर में महारत हासिल करना बहुत ज़रूरी है, और रूबी फ़ाइलों का कुशलतापूर्वक नाम बदलने के लिए सुंदर समाधान प्रदान करता है। यह गाइड विभिन्न तकनीकों का पता लगाता है, जिसमें एकल-फ़ाइल नाम बदलने से लेकर निर्देशिकाओं में जटिल बैच संचालन तक शामिल हैं।

विषयवस्तु की तालिका

कार्यक्रम द्वारा फ़ाइलों का नाम क्यों बदलें?

अनेक फ़ाइलों से निपटते समय मैन्युअल फ़ाइल नाम बदलना अव्यावहारिक हो जाता है। स्वचालन कई लाभ प्रदान करता है:

  • दक्षता: सैकड़ों या हज़ारों फ़ाइलों को शीघ्र और सटीक रूप से संसाधित करें।
  • मानकीकरण: बेहतर संगठन के लिए संगत नामकरण सम्मेलनों को लागू करें।
  • संस्करण नियंत्रण: फ़ाइल पुनरावृत्तियों को ट्रैक करने के लिए टाइमस्टैम्प या संस्करण संख्याएँ जोड़ें।
  • कार्यप्रवाह एकीकरण: बड़े डेटा प्रसंस्करण पाइपलाइनों में फ़ाइल नाम बदलना सहज रूप से एकीकृत करें।
  • डेटा सफाई: टाइपो को ठीक करें, अवांछित वर्णों को हटा दें और खोज क्षमता में वृद्धि करें।

एकल फ़ाइल का नाम बदलना

सबसे सरल परिदृश्य में एकल फ़ाइल का नाम बदलना शामिल है। रूबी का 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

मज़बूत त्रुटि संचालन

फ़ाइलों के नहीं मिलने या मौजूदा फ़ाइलों जैसी समस्याओं को सुचारू रूप से प्रबंधित करने के लिए हमेशा व्यापक त्रुटि संचालन शामिल करें।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *