রুবিতে একটি ফাঁকা ফাইল তৈরি করা: "টাচ" সমতুল্য?


119

রুবিতে খালি ফাইল তৈরির সবচেয়ে ভাল উপায় কী ?

ইউনিক্স কমান্ডের অনুরূপ কিছু, স্পর্শ করুন :

touch file.txt

5
আপনি সর্বদা করতে পারেন`touch file.txt`
মার্ক টমাস

8
@ মার্ক: উইন্ডোতেও?
মার্ক-আন্দ্রে লাফোর্টুন

1
সঠিক প্ল্যাটফর্ম-স্বতন্ত্র প্রোগ্রামিংয়ের বিষয়ে যত্নশীল লোকেরা? :-)
টিজে বিডল

উত্তর:


180

FileUtils.touchদেখে মনে হচ্ছে এটা কি করে, এবং আয়না *touch কমান্ড প্রয়োগ করুন:

require 'fileutils'
FileUtils.touch('file.txt')

* স্পর্শের বিপরীতে (1) আপনি একা একাই মাইটাইম বা টাইম আপডেট করতে পারবেন না। এটি অন্যান্য কয়েকটি দুর্দান্ত বিকল্পও হারিয়েছে।


@ 5chdn আপনি প্যারেন্স ছাড়া কি বোঝাতে চান? হ্যাঁ, পদ্ধতির পরামিতিগুলির চারপাশে প্যারেন্সগুলি (কখনও কখনও) alচ্ছিক।
ডেভ নিউটন

44

আপনি যদি ফাইল হ্যান্ডলগুলি নিয়ে উদ্বিগ্ন হন:

File.open("foo.txt", "w") {}

ডক্স থেকে :

Theচ্ছিক কোড ব্লক যদি দেওয়া হয় তবে এটি খোলা ফাইলটি একটি আর্গুমেন্ট হিসাবে পাস করা হবে এবং ব্লকটি বন্ধ হয়ে গেলে ফাইল অবজেক্টটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে।


ধন্যবাদ, আমি নতুন ফাইলটি অন্য একটি প্রক্রিয়ায় প্রেরণ করছি, তাই হ্যান্ডেলটি অবিলম্বে বন্ধ করা দরকার।
অভি বেকার্ট

12
touchএটি আসলে আয়না দেয় না এমন উল্লেখযোগ্যভাবে - এটি উপস্থিত থাকলে ফাইলটি ওভাররাইট করে দেবে।
মিঃ দ্য ওয়ালরাস

3
অ্যাপেন্ড মোডটি ব্যবহার করুন এবং ফাইলটি ইতিমধ্যে উপস্থিত থাকলে ফাইল কেটে ফেলা হবে না ("foo.txt", "a") {also এটি 'টাচ' আয়নাও দেয় না, তবে 'স্পর্শ (1)' ছিল না প্রশ্নটি.
জি। অ্যালেন মরিস তৃতীয়

"এ" ব্যবহার করা এমটাইম আপডেট করে না। ("স্পর্শ" সাবটাইটেল ছিল, তাই গুগল আমাদের এমন লোকদের নিয়ে আসে যারা রুবি স্পর্শ চায়
want

* নিক্স সিস্টেমগুলিতে, ফাইলটি যখন এইভাবে তৈরি করা হয় তখন কে মালিক?
ইসলাম আজাব

24

রুবি ১.৯.৩++ এ আপনি File.write(ওরফে IO.write) ব্যবহার করতে পারেন :

File.write("foo.txt", "")

পূর্ববর্তী সংস্করণ জন্য, হয় require "backports/1.9.3/file/write"বা ব্যবহার করুনFile.open("foo.txt", "w") {}


এটি অনেক পরিষ্কার, তবে দুর্ভাগ্যক্রমে আমার পিছনে সামঞ্জস্যপূর্ণ হওয়া দরকার। যদিও ভবিষ্যতে ব্যবহারের জন্য এটি মনে রাখব।
অভি বেকার্ট

2

এবং এছাড়াও, কম সুবিধাজনক, কিন্তু খুব সংক্ষিপ্ত:

`touch file.txt`

3
কাঁটা পৃথক pricess, তাই খুব ধীর।
denis.peplin

এবং মন্তব্যগুলিতে ইতিমধ্যে উল্লেখ করা হয়েছে, যা আমি আগে লক্ষ্য করি নি।
বরিস স্ট্যাটনিকি

-1

শুধু একটি উদাহরণ:

File.open "foo.txt", "w"

1
এটি কি অন্য কোনও ভাষায় যেমন একটি খোলা ফাইল হ্যান্ডেলটি রেখে দেয়?
অভি বেকার্ট

4
@ অভি: এটি হয়, তবে আবর্জনা সংগ্রহ এটি এক পর্যায়ে পরিচালনা করবে। তা এড়াতে, যদিও একটি খালি ব্লকটি পাস করুন (মাইকেল কোহলের উত্তর দেখুন)
মার্ক-আন্দ্রে লাফোর্টুন

"কখন" কখন হতে চলেছে? স্ক্রিপ্টের শেষে, বা অবিলম্বে কারণ এটি কোনও ভেরিয়েবলের জন্য বরাদ্দ করা হয়নি? আমি ফাইলটি তৈরি করছি যাতে সিস্টেমে অন্যান্য প্রক্রিয়াগুলি সাথে সাথে এটির সাথে কাজ শুরু করতে পারে এবং যদি ফাইল হ্যান্ডেলটি লেখার জন্য এখনও খোলা থাকে তবে সেগুলি ব্লক করা হবে।
অভি বেকার্ট

1
File.open ("foo.txt", "w")। ক্লোজ () ফাইলহ্যান্ডেল সমস্যা সমাধান করে তবে ফাইল ইউটিলস.টচ একটি আরও ভাল সমাধান।
মাইকেল ক্যাম্পবেল

ওপেন করা ফাইলগুলি হ্যান্ডলগুলি এর মতো রাখবেন না :-)
সেকমো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.