---
title: "Filhantering upptagen fil."
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/154630-filhantering-upptagen-fil"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Zaiman"
published: "2006-12-08T10:46:42.000Z"
updated: "2006-12-08T13:14:38.000Z"
replies: 7
views: 658
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/154630-filhantering-upptagen-fil"
---

# Filhantering upptagen fil.

## #1 — Zaiman, 2006-12-08T10:46Z

Har en rutin som preparera en fil och skapar en tempfil
I koden efter använder filen som skapades och det går bra första vändan.
Men när jag ska använda samma fil igen är den upptagen. Jag måste naturligvis stänga filen efter mig ... Men hur gör jag? Verkar ha hjärnblödning och är blind idag \*suck\* kan det bero på att det är fredag?

```
        public static void prepFile(string file, string renTo)
        {

            if (!File.Exists(("C:\\katalogen\\temp.txt")))
            {
                File.Create("C:\\katalogen\\temp.txt");

                System.Threading.Thread.Sleep(5000);
                
                
            }

            string filename = "C:\\katalogen\\temp.txt";

            using (TextReader reader = new StreamReader(file, System.Text.Encoding.Default, false))
            {
                using (TextWriter wr = new StreamWriter(filename, false, System.Text.Encoding.Default))
                {
                    string line = reader.ReadLine();
                    for (int i = 0; i < 2; i++)
                    {
                        line = reader.ReadLine();
                    }

                    while ((line = reader.ReadLine()) != null)
                    {

                        line = line.Trim('\"');
                        line = line.Trim('ê');
                        line = line.Trim('ë');
                        line = line.Trim('è');
                        line = line.Trim('à');
                        line = line.Trim('{');
                        line = line.Trim(';');
                        line = line.Trim('ë');
                        line = line.Trim('á');
                        line = line.Trim('ë');

                        if (line.Length < 12)
                        {
                            wr.WriteLine();
                        }
                        else
                        {
                            wr.WriteLine(line);
                        }

                    }
                }
            }
            // Kopiera till rätt filnamn
            File.Copy("C:\\katalogen\\temp.txt", renTo, true);

        }
```

Permalänk: https://www.webforum.nu/p/154630

## #2 — Pace, 2006-12-08T11:01Z

```
wr.Close
```

 och 

```
reader.Close
```

Permalänk: https://www.webforum.nu/p/1908367

## #3 — Zaiman, 2006-12-08T11:53Z

Jo det är sant men tyvärr så löser det inte problemet .. :)

Första gången den körs går det bra, andra gången är temp.txt upptagen :(

Permalänk: https://www.webforum.nu/p/1908383

## #4 — Zaiman, 2006-12-08T12:17Z

Gjorde även detta:

```
wr.dispose();
```

Verkar har löst det hela..

Permalänk: https://www.webforum.nu/p/1908389

## #5 — Pace, 2006-12-08T12:18Z

Lite märkligt. Men såvitt jag vet så körs Close även när man kör Dispose. Åtminstone när det gäller dataanslutningar.

Bra att det löste sig dock. :)

Permalänk: https://www.webforum.nu/p/1908391

## #6 — Zaiman, 2006-12-08T12:19Z

Så det borde räcka med .Dispose ?

Permalänk: https://www.webforum.nu/p/1908392

## #7 — Zaiman, 2006-12-08T12:56Z

Hmmm.. Rackarns vad fel jag har.. Inte är det löst inte..

```
            if (!File.Exists(("C:\\katalogen\\temp.txt")))
            {
                File.Create("C:\\katalogen\\temp.txt");

                System.Threading.Thread.Sleep(5000);
                
                
            }
```

Denna kod verkar låsa filen även första gången..

Permalänk: https://www.webforum.nu/p/1908408

## #8 — Zaiman, 2006-12-08T13:14Z

```
 if (!File.Exists(("C:\\katalogen\\temp.txt")))
            {
                FileInfo fi = new FileInfo(@"C:\\katalogen\\temp.txt");
                FileStream fstr = fi.Create();
                fstr.Close();
                fstr.Dispose();

             }
```

Så.. Nu funkar det :)

Permalänk: https://www.webforum.nu/p/1908412

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/154630-filhantering-upptagen-fil
