我遇到了问题,我编写了一个程序,该程序为我创建了一个包含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);
}
}
}
}
}
}
}