Filkopiering, i förhållande till datorer, är processen att skapa en exakt kopia av informationen i en datorfil. Beroende på vilket operativsystem eller programvara som används, kan den kopierade filen också innehålla identisk metadata, såsom datum för skapandet, även om denna information ibland inte dupliceras, specifikt för att skilja kopian från originalet i något avseende. Nästan alla operativsystem stöder någon form av filkopiering, med vissa system som innehåller mekanismer som gör att filer kan kopieras från vilken plats som helst, även över ett nätverk. Vissa komplikationer kan uppstå när du utför en filkopiering, inklusive en namnkollision där två filer har samma namn och ett kopieringsfel där ingen fil kopieras, ibland på grund av säkerhetsrestriktioner och andra gånger på grund av hårdvarufaktorer som bristande ledigt diskutrymme.
Det finns två huvudsakliga sätt för en användare att utföra filkopiering. Det första är att initiera kopieringskommandot från ett kommandoradsgränssnitt. Detta innebär vanligtvis att du skriver in ett kommando följt av källfilens namn och sedan destinationsfilens namn och plats. Alternativt görs filkopiering vanligare genom att använda ett grafiskt användargränssnitt (GUI) som låter användare interagera med och se filer på ett mer naturligt, grafiskt sätt. När du använder ett GUI för att kopiera filer, representeras filen ofta av en ikon på skärmen som kan dras med en mus och släppas till en ny plats.
Även om operativsystem inbyggt stöder filkopiering, används ibland separata program för att hantera processen. Detta gäller särskilt i fall där ett stort antal filer måste dupliceras, vilket kan uppta systemresurser och göra det omöjligt att använda datorn förrän alla filer har kopierats. I dessa fall är vissa program utformade antingen för att fungera i bakgrunden med låg prioritetsnivå eller har speciella inbyggda funktioner såsom accelererad kopieringsförmåga eller en pausfunktion.
Ur ett programmeringsperspektiv kan filkopiering vara en ganska enkel process. Källfilen öppnas och en tom målfil skapas. Varje byte i källfilen läses in i ett program och skrivs sedan ut till målfilen. Den nya filen kommer att ha det exakta innehållet i källfilen men kan innehålla annan metadata. Oftast betyder detta att datumet då filen skapades kommer att matcha datumet då filen kopierades och kan skilja sig från det datum då källfilen faktiskt skapades.