Piszę program do selekcjonowania zdjęć, tzn. on wyświetla mi zdjęcie a ja wybieram czy ma zostać skasowane czy nie. Oto cały kod z Form1:

 string ścieżka;
        int stan = 0;
        string[] listaZdjęć = new string[2000];
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            folderBrowserDialog1.ShowDialog();
            ścieżka = folderBrowserDialog1.SelectedPath.ToString();
            listaZdjęć = Directory.GetFiles(ścieżka);

            for (int licznik = 0; licznik < listaZdjęć.Length; licznik++)
            {
                if (Path.GetExtension(listaZdjęć[licznik]).Equals(@".JPG") == false)
                {
                    if (Path.GetExtension(listaZdjęć[licznik]).Equals(@".JPEG") == false)
                    {
                        listaZdjęć[licznik] = "";
                    }
                }
            }
            pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
            pictureBox1.Image = Image.FromFile(listaZdjęć[0]);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            pictureBox1.Image = Image.FromFile(listaZdjęć[stan + 1]);
  
            File.Move(listaZdjęć[stan], ścieżka + @"\OK\" + Path.GetFileName(listaZdjęć[stan])); //tu jest błąd
            stan++;
        }

        private void button4_Click(object sender, EventArgs e)
        {
            pictureBox1.Image = Image.FromFile(listaZdjęć[stan + 1]);
            File.Copy(listaZdjęć[stan], ścieżka + @"\Do usunięcia\" + Path.GetFileName(listaZdjęć[stan]));
            stan++;
        }
    }

Chodzi o to, że po zmianie zdjęcia w pictureboxie plik z poprzednim zdjęciem ciągle jest używany przez program(IOException). Cała reszta kodu funkcjonuje poprawnie, gdy zamieniłem Move na Copy, pliki się kopiowały i całość działała sprawnie. Jak więc zamknąć plik z nieużywanym już zdjęciem?