Использование file.Close () с StreamWriter - PullRequest
1 голос
/ 18 июня 2011

У меня проблемы с попыткой использования файла. Закройте с StreamWriter в этом методе, он, кажется, не нравится. Может ли кто-то продемонстрировать, как это можно сделать. (Причина в том, что другой метод обращается к используемому файлу и, следовательно, не может, потому что файл все еще используется другим методом.)

Код пока:

private static void TrimColon()
{
    using (StreamWriter sw = File.AppendText(@"process_trimmed.lst"))
    {
        StreamReader sr = new StreamReader(@"process_trim.lst");
        string myString = "";
        while (!sr.EndOfStream)
        {

            myString = sr.ReadLine();
            int index = myString.LastIndexOf(":");
            if (index > 0)
                myString = myString.Substring(0, index);

            sw.WriteLine(myString);
        }
    }
}

Ответы [ 2 ]

4 голосов
/ 18 июня 2011
private static void TrimColon(String inputFilePath, String outputFilePath)
{
    //Error checking file paths
    if (String.IsNullOrWhiteSpace(inputFilePath))
        throw new ArgumentException("inputFilePath");
    if (String.IsNullOrWhiteSpace(outputFilePath))
        throw new ArgumentException("outputFilePath");

    //Check to see if files exist? - Up to you, I would.

    using (var streamReader = File.OpenText(inputFilePath))
    using (var streamWriter = File.AppendText(outputFilePath))
    {
        var text = String.Empty;

        while (!streamReader.EndOfStream)
        {
            text = streamReader.ReadLine();

            var index = text.LastIndexOf(":");
            if (index > 0)
                text = text.Substring(0, index);

            streamWriter.WriteLine(text);
        }
    }
}
4 голосов
/ 18 июня 2011

StreamWriter закрывается, а также сбрасывается из-за оператора using. Так что не нужно звонить близко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...