سؤال

أحاول إنشاء تطبيق وحدة تحكم C# الذي سيقوم بإنشاء ملف سجل.أرغب في الحصول على بعض المرونة فيما يتعلق بمكان تخزين ملف السجل.

حاولت استخدام ملف الإعدادات.settings مع:

اسم:نوع logDrive:نطاق السلسلة:قيمة التطبيق:C:\البرامج النصية\السجلات

في الكود الخاص بي، أستخدم:

string logFile = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString();
logFile = logFile.Replace(@"/", @"-").Replace(@"\", @"-") + ".log";
string logDrive = Properties.Settings.Default.logDrive;
StreamWriter output = new StreamWriter(logDrive + logFile);

عند تجميع ما ورد أعلاه أحصل على رسالة الخطأ "تنسيق المسار المحدد غير مدعوم."

إذا كان ذلك مفيدًا، فإن قيم:

logDrive = "C: Scripts servicedesk logs" logfile = "3-23-2009 1:20 pm.log"

هل لدى أي شخص أي أفكار/توصيات لنهج أفضل و/أو ما الخطأ الذي أفعله؟

هل كانت مفيدة؟

المحلول

لا يمكنك تضمين أ : في اسم الملف.قد يكون النهج الأفضل هو استخدام تنسيق مثل

YYYYMMDD_HHMMSS.log

(على سبيل المثال 20090323_231245.log)

يتميز هذا بأنه قابل للفرز بسهولة، ولا يستخدم أي أحرف غير صالحة.

يمكنك الحصول على هذا باستخدام

string logFile = string.Format("{0:yyyyMMdd_HHmmss}.log", DateTime.Now);

ملحوظات:

أيضًا، كما هو مقترح في التعليقات، يجب أن تفكر في استخدامه Path.Combine للجمع بين الدليل واسم الملف.سيساعد هذا في تخفيف المشكلات المتعلقة بفواصل المسار اللاحقة، وما إلى ذلك.

نصائح أخرى

وستحتاج أيضا إلى إضافة شرطة مائلة إلى الخاص بك logDrive. أي بمعنى:

logDrive = "C:\Scripts\ServiceDesk\Logs\"

و.. أو استخدام Path.Combine كما هو مقترح في الجواب أخرى

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top