Fichier utilisé par un autre processus à l'aide de StreamWriter

Mon programme était pratique pour moi, cependant, lorsque j'essaie d'écrire tous les répertoires, il a trouvé, il se bloque.

J'ai essayé le suivant:

  • L'avoir à l'écrire dans un fichier de flux à la place du fichier lui-même
  • à l'aide de Fichier.Writealllines à l'aide d'une liste<> (cela a fonctionné, seulement il l'a fait la première de cinq et pas plus)
  • FileStream.Écrire(sous répertoire.ToCharArray())

Je ne vois pas pourquoi cela ne marcherait pas, qu'ai-je fait de mal?

static void Main(string[] args)
{
    Method(@"C:\");
}

static void Method(string dir)
{
    //crash happens here v
    StreamWriter sw = new StreamWriter(@"C:\users\"+Environment.UserName+"\desktop\log.txt",true);

    foreach (string subdir in Directory.GetDirectories(dir))
    {
        try
        {
            Console.WriteLine(subdir);
            sw.Write(subdir);
            Method(subdir);
        }
        catch (UnauthorizedAccessException)
        {
            Console.WriteLine("Error");
        }
    }
  sw.Close(); 
}
InformationsquelleAutor Chris Altig | 2013-11-18