---
title: "Hur ändrar man filnamn på en uppladad fil i fall den redan finns på servern."
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/180908-hur-ändrar-man-filnamn-på-en-uppladad-fil-i-fall-den-redan-finns-på-servern"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "kajaBaja"
published: "2009-10-24T14:03:38.000Z"
updated: "2009-10-29T17:03:55.000Z"
replies: 5
views: 752
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/180908-hur-ändrar-man-filnamn-på-en-uppladad-fil-i-fall-den-redan-finns-på-servern"
---

# Hur ändrar man filnamn på en uppladad fil i fall den redan finns på servern.

## #1 — kajaBaja, 2009-10-24T14:03Z

Jag har ett problem, jag har en lite applikation och där ska man kunna ladda upp dina bilder, men jag vill kunna ändra namn eller snare lägga till index på filen dvs minBild.jpg kommer att sparas som minBild(1).jpg om minBild.jpg redan finns.
Hur gör man sånt?
Så här ser klassen ut så länge.

```
public static class Upload
{
    private static bool CheckPictureType(string fileName)
    {
        string extension = Path.GetExtension(fileName);
        switch (extension.ToLower())
        {
            case ".jpg":
                return true;
            case ".gif":
                return true;
            case ".png":
                return true;
            default:
                return false;
        }
    }

    public static string UploadPicture(FileUpload uploadedFile, int maxFileSize)
    {
        if (uploadedFile.HasFile)
        {
            if (uploadedFile.PostedFile.ContentLength < maxFileSize)
            {
                if (CheckPictureType(uploadedFile.FileName))//om det är tillåtet extension
                {
                    //var filen ska sparas
                    string destDir = HttpContext.Current.Server.MapPath("~/APP/Images");
                    //under vilket namn
                    string imageName = Path.GetFileName(uploadedFile.PostedFile.FileName);
                    //kombinerar destDir och imagename
                    string destPath = Path.Combine(destDir, imageName);

                    uploadedFile.PostedFile.SaveAs(destPath);

                    return "filen är uppladad";
                    
                }
                else
                    //filens typ är inte korrekt
                    return "This is not a guilty pic extension.";
            }
            else
                //Den valda filen är för stor
                return "Picture to large, maximum size " + maxFileSize + " bytes.";
        }
        else 
            //ingen fill har blivit valt(uppladnings rutan är tom)
            return "No picture";
    }
}
```

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

## #2 — Ledel, 2009-10-24T14:16Z

När du har bestämt destPath får du helt enkelt kolla om File.Exists(destPath), och i så fall bestämma ett nytt namn på din bild.

```
string destPath = Path.Combine(destDir, imageName);
if (File.Exists(destPath))
{
//Bilden finns, skapa nytt namn och kör sedan destPath = Path.Combine(destDir, imageName);
}
```

Lägg dock märke till att du måste se till att ditt nya namn inte heller används!

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

## #3 — kajaBaja, 2009-10-24T14:24Z

Det är precis jag hela tiden försöker att göra men lyckas inte ändå, när jag debbugar så hamnar han aldrig i den if-en även i fall filen finns redan:-(
Den andra delen tänkte jag lösa med i++ och while.

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

## #4 — Ledel, 2009-10-24T14:42Z

Hur ser den kod du kör ut? (Inkl. if-sats)

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

## #5 — rhdf, 2009-10-29T13:49Z

personligen brukar jag lösa sånt här med att ALLTID döpa om filer som laddas upp eftersom chansen att 2 filer heter samma sak är rätt stor ibland (tex img0001.jpg)

jag lägger helt enkelt till aktuellt datum och tid före eller efter filnamnet
Risken för att 2 filer med samma namn skall laddas upp samma sekund är ju rätt liten

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

## #6 — Ledel, 2009-10-29T17:03Z

> **[rhdf skrev:](https://www.webforum.nu/p/1486203)**
>
> personligen brukar jag lösa sånt här med att ALLTID döpa om filer som laddas upp eftersom chansen att 2 filer heter samma sak är rätt stor ibland (tex img0001.jpg)
> 
> jag lägger helt enkelt till aktuellt datum och tid före eller efter filnamnet
> Risken för att 2 filer med samma namn skall laddas upp samma sekund är ju rätt liten

Ett annat alternativ är att använda GUID, antingen för att döpa om bilden helt eller för att lägga till en del av ett GUID före och/eller efter.

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/180908-hur-ändrar-man-filnamn-på-en-uppladad-fil-i-fall-den-redan-finns-på-servern
