System.IO.IOException:我的代码有什么问题?

时间:2019-12-02 08:56:42

标签: c# exception streamwriter

我遇到了问题,我编写了一个程序,该程序为我创建了一个包含Word文件的文件夹。不幸的是,当我使用SteamWriter时会有一个例外。

例外:

System.IO.IOException: 'The process cannot access the file "C:\Users\ProBook\Desktop\PokemonGruppen\Gruppe_1" because it is used by another process'.

它在这一行抛出异常:

using (StreamWriter writer = new StreamWriter(filepath))

我的代码:

using System;
using System.Collections.Generic;
using System.IO;

namespace PokemonZufallsGenarator
{
    class Program
    {
        public static List<string> pokeList = new List<string>();
        static void Main(string[] args)
        {
            Random r = new Random();
            //Liste befuellen
            ...
            Console.WriteLine("Bitte nehmen Sie die noch benötigen Dateien aus dem <PokemonGruppen> Ordner auf dem Desktop! Die Dateien werden gelöscht und können nicht Wiederhergestellt werden.");
            Console.ReadLine();
            DirectoryInfo directory = new System.IO.DirectoryInfo(@"C:\Users\ProBook\Desktop\PokemonGruppen");
            string filepath = @"C:\Users\ProBook\Desktop\PokemonGruppen";
            //Word filepaths erstellen
            ...

            if (!Directory.Exists(filepath))
            {
                Directory.CreateDirectory(filepath);
            }

            foreach (FileInfo file in directory.GetFiles())
            {
                file.Delete();
            }

            int a = pokeList.Count;
            while (a > 1)
            {
                a--;
                int k = r.Next(a + 1);
                string value = pokeList[k];
                pokeList[k] = pokeList[a];
                pokeList[a] = value;
            }
            WriteGroupeInFile(filepath1);
            WriteGroupeInFile(filepath2);
            WriteGroupeInFile(filepath3);
            WriteGroupeInFile(filepath4);
            WriteGroupeInFile(filepath5);
            WriteGroupeInFile(filepath6);
            WriteGroupeInFile(filepath7);
            WriteGroupeInFile(filepath8);
            WriteGroupeInFile(filepath9);
            WriteGroupeInFile(filepath10);
            WriteGroupeInFile(filepath11);
            WriteGroupeInFile(filepath12);
            WriteGroupeInFile(filepath13);
            WriteGroupeInFile(filepath14);
            WriteGroupeInFile(filepath15);
            WriteGroupeInFile(filepath16);
            WriteGroupeInFile(filepath17);
            WriteGroupeInFile(filepath18);
            WriteGroupeInFile(filepath19);
            WriteGroupeInFile(filepath20);
            WriteGroupeInFile(filepath21);
            WriteGroupeInFile(filepath22);
            WriteGroupeInFile(filepath23);
            WriteGroupeInFile(filepath24);
            WriteGroupeInFile(filepath25);
            WriteGroupeInFile(filepath26);
            WriteGroupeInFile(filepath27);
            WriteGroupeInFile(filepath28);
            WriteGroupeInFile(filepath29);
            WriteGroupeInFile(filepath30);
            WriteGroupeInFile(filepath31);
            WriteGroupeInFile(filepath32);
            WriteGroupeInFile(filepath33);
            WriteGroupeInFile(filepath34);
            WriteGroupeInFile(filepath35);
            WriteGroupeInFile(filepath36);
            WriteGroupeInFile(filepath37);
            WriteGroupeInFile(filepath38);
            WriteGroupeInFile(filepath39);
            WriteGroupeInFile(filepath40);
            WriteGroupeInFile(filepath41);
            WriteGroupeInFile(filepath42);
            WriteGroupeInFile(filepath43);
            WriteGroupeInFile(filepath44);
            WriteGroupeInFile(filepath45);
            WriteGroupeInFile(filepath46);
            WriteGroupeInFile(filepath47);
            WriteGroupeInFile(filepath48);
            WriteGroupeInFile(filepath49);
            WriteGroupeInFile(filepath50);
            WriteGroupeInFile(filepath51);
            WriteGroupeInFile(filepath52);
            WriteGroupeInFile(filepath53);
            WriteGroupeInFile(filepath54);    
            WriteGroupeInFile(filepath55);
            WriteGroupeInFile(filepath56);
            WriteGroupeInFile(filepath57);
            WriteGroupeInFile(filepath58);
            WriteGroupeInFile(filepath59);
            WriteGroupeInFile(filepath60);
            WriteGroupeInFile(filepath61);
            WriteGroupeInFile(filepath62);
            WriteGroupeInFile(filepath63);
            WriteGroupeInFile(filepath64);
        }

        private static void WriteGroupeInFile(string filepath)
        {
            if (!File.Exists(filepath))
            {
                File.Create(filepath);

            }

            using (StreamWriter writer = new StreamWriter(filepath))
            {
                int i = 1;
                foreach (string text in pokeList)
                {
                    if (pokeList.Count < 14)
                    {
                        if (i >= 7)
                        {
                            writer.WriteLine(text);
                            pokeList.RemoveAt(0);
                        }
                    }
                    else
                    {
                        if (i >= 14)
                        {
                            writer.WriteLine(text);
                            pokeList.RemoveAt(0);
                        }
                    }
                }
            }
        }
    }
}

0 个答案:

没有答案