ফাইলের নামের সাথে টাইমস্ট্যাম্প যুক্ত করুন


118

আমি এই সমস্যাটি বেশ কয়েকবার এসেছি যেখানে একই ডিরেক্টরিতে একই ফাইলটির একাধিক সংস্করণ থাকতে চাই। সি # এর সাহায্যে আমি যেভাবে এটি করছি তা হ'ল ফাইলের নামের সাথে এমন কিছু সহ একটি টাইম স্ট্যাম্প যুক্ত করে DateTime.Now.ToString().Replace('/', '-').Replace(':', '.')। এই কাজ করতে একটি ভাল উপায় আছে কি?

উত্তর:


260

আপনি তারিখটাইম ব্যবহার করতে পারেন। টুস্ট্রিং পদ্ধতি (স্ট্রিং)

DateTime.Now.ToString("yyyyMMddHHmmssfff")

বা স্ট্রিং.ফর্ম্যাট

string.Format("{0:yyyy-MM-dd_HH-mm-ss-fff}", DateTime.Now);

বা ইন্টারপোলটেড স্ট্রিংস

$"{DateTime.Now:yyyy-MM-dd_HH-mm-ss-fff}"

নিম্নলিখিত কাস্টম ফর্ম্যাট স্পেসিফায়ারগুলি y (বছর), এম (মাস), ডি (দিন), ঘন্টা (ঘন্টা 12), এইচ (ঘন্টা 24), এম (মিনিট), এস (দ্বিতীয়), চ (দ্বিতীয় ভগ্নাংশ), এফ রয়েছে (দ্বিতীয় ভগ্নাংশ, পিছনের শূন্যগুলি ছাঁটা হয়), টি (পিএম বা এএম) এবং জেড (সময় অঞ্চল)।

এক্সটেনশন পদ্ধতি সহ

ব্যবহার:

string result = "myfile.txt".AppendTimeStamp();
//myfile20130604234625642.txt

সম্প্রসারণ পদ্ধতি

public static class MyExtensions
{
    public static string AppendTimeStamp(this string fileName)
    {
        return string.Concat(
            Path.GetFileNameWithoutExtension(fileName),
            DateTime.Now.ToString("yyyyMMddHHmmssfff"),
            Path.GetExtension(fileName)
            );
    }
}

1
আমি Path.GetDirectoryName(fileName)ফাইলের পুরো পথ পেতে যোগ করেছি । তারপরে পুরো ফাইলের নামটি string.Concat()দিয়ে প্রতিস্থাপন করুন Path.Combine()
গিলু

17

আমি ব্যবহার করতে পছন্দ করি:

string result = "myFile_" + DateTime.Now.ToFileTime() + ".txt";

টোফাইলটাইম () কী করে?

বর্তমান ডেটটাইম অবজেক্টের মানটিকে একটি উইন্ডোজ ফাইল সময়কে রূপান্তর করে।

public long ToFileTime()

একটি উইন্ডোজ ফাইল সময় হল একটি 64-বিট মান যা 100-ন্যানোসেকেন্ড অন্তরগুলির সংখ্যা উপস্থাপন করে যা 1 জানুয়ারী, 1601 খ্রিস্টাব্দ (সিই) সমন্বিত ইউনিভার্সাল টাইম (ইউটিসি) এর মধ্যরাত, 12:00 সাল থেকে শেষ হয়ে গেছে। উইন্ডোজ কোনও ফাইল তৈরি করে, অ্যাক্সেস করে বা কোনও ফাইল লিখলে রেকর্ড করতে একটি ফাইল সময় ব্যবহার করে।

উত্স: এমএসডিএন ডকুমেন্টেশন - ডেটটাইম.টোফাইলটাইম পদ্ধতি


10

সম্ভবত DateTime.Now.Ticksপরিবর্তে সংযোজন , একটি সামান্য বিট দ্রুত যেহেতু আপনি 3 টি স্ট্রিং তৈরি করবেন না এবং টিক্সের মানটিও সর্বদা স্বতন্ত্র।


2

তুমি ব্যবহার করতে পার:

Stopwatch.GetTimestamp();

আপনি টাইমস্ট্যাম্পটি পাবেন এইভাবে উত্তর !. পাথ ক্লাস এবং স্ট্রিং ম্যানিপুলেশন ব্যবহার করে কোনও ফাইলে এটি যুক্ত করুন কোনও সমস্যা নয়। এটি কেবলমাত্র ডেটটাইম.টোস্ট্রিং মেথড (স্ট্রিং) বা স্ট্রিংয়ের বিকল্প For
জোসেফ

1

পরিবর্তে আপনি নীচে ব্যবহার করতে পারেন:

DateTime.Now.Ticks

1

ফাইল সিস্টেমের কোনও ফাইলের নাম হিসাবে বর্তমান তারিখ এবং সময় For এখন স্ট্রিংকে কল করুন matফর্ম্যাট পদ্ধতিটি এবং তারিখটাইম.এখন একত্রিত করুন, এমন পদ্ধতির জন্য যা তারিখ এবং সময়ের উপর ভিত্তি করে সঠিক স্ট্রিংকে আউটপুট করে।

using System;
using System.IO;

class Program
{
    static void Main()
    {
        //
        // Write file containing the date with BIN extension
        //
        string n = string.Format("text-{0:yyyy-MM-dd_hh-mm-ss-tt}.bin",
            DateTime.Now);
        File.WriteAllText(n, "abc");
    }
}

আউটপুট:

C:\Users\Fez\Documents\text-2020-01-08_05-23-13-PM.bin

"text-{0:yyyy-MM-dd_hh-mm-ss-tt}.bin"

পাঠ্য- আউটপুট প্রয়োজনীয় ফাইলের প্রথম অংশটি সমস্ত পাঠ্য- দিয়ে শুরু হবে

{0: ইঙ্গিত করে যে এটি একটি স্ট্রিং প্লেসহোল্ডার শূন্যটি এখানে paraোকানো প্যারামিটারের সূচক নির্দেশ করে

yyyy- বছরটি চার অঙ্কে মুদ্রণ করে ড্যাশ অনুসরণ করে এটিতে "বছরের 10000" সমস্যা রয়েছে

এমএম- মাসটি দুটি অঙ্কে মুদ্রণ করে

dd_ দিনটিকে দুটি অঙ্কে মুদ্রণ করে তারপরে একটি আন্ডারস্কোর অনুসরণ করা হয়

এইচএইচ- ঘন্টাটি দুই অঙ্কে মুদ্রণ করে

মিমি- মিনিটটিও দুটি অঙ্কে মুদ্রণ করে

ss- হিসাবে প্রত্যাশিত, এটি কয়েক সেকেন্ড মুদ্রণ করে

টিটি দিনের সময় অনুসারে এএম বা প্রধানমন্ত্রী মুদ্রণ করে

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