حذف ملف باستخدام file.delete ثم باستخدام StreamWriter لإنشاء نفس الملف؟

StackOverflow https://stackoverflow.com/questions/1291577

  •  18-09-2019
  •  | 
  •  

سؤال

public void LoadRealmlist()
{
    try
    {
        File.Delete(Properties.Settings.Default.WoWFolderLocation + 
            "Data/realmlist.wtf");

        StreamWriter TheWriter = 
            new StreamWriter(Properties.Settings.Default.WoWFolderLocation + 
            "Data/realmlist.wtf");

        TheWriter.WriteLine("this is my test string");
        TheWriter.Close();
    }
    catch (Exception)
    {       
    }            
}

هل ستحذف طريقتي بشكل صحيح ملف، ثم قم بإنشاء واحد باستخدام "realmlist.wtf" كاسم ثم اكتب خطا إليه؟

أنا مرتبك لأنني لا أستطيع رؤية الخط حيث في الواقع يخلق الملف مرة أخرى. أو هل يقوم فعل إنشاء Streamiter بإنشاء ملف تلقائيا؟

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

المحلول

سيؤدي كاتب الدفق إلى إنشاء الملف إذا لم يكن موجودا. سوف ينشئها في المنشئ، لذلك عندما يتم إنشاء مثيل كتاب Streamiter.

نصائح أخرى

كما تعلمون، إذا قمت بتمرير مثيل ملف FileStream إلى منشئ StreamWriter، فيمكن ضبطه على الكتابة فوق الملف ببساطة. مجرد تمريرها مع المنشئ.

http://msdn.microsoft.com/en-us/library/system.io.filestream.filestream.aspx.

مثال:

try
{
    using (FileStream fs = new FileStream(filename, FileMode.Create))
    {
        //FileMode.Create will make sure that if the file allready exists,
        //it is deleted and a new one create. If not, it is created normally.
        using (StreamWriter sw = new StreamWriter(fs))
        {
           //whatever you wanna do.
        }
    }
}
catch (Exception e)
{
    System.Diagnostics.Debug.WriteLine(e.Message);
}

أيضا، مع هذا لن تحتاج إلى استخدام .Close طريقة. ال using() وظيفة يفعل ذلك من أجلك.

يحاول System.IO.File.CreateText.

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