Przenoszenie konkretnej ilości plików do folderów


(arlid) #1

Witajcie. Mam ogrom plików w jednym z folderów i chciałbym je przenieść do podfolderów po 200 plików. Pomyślałem, ze zrobię to na zasadzie wczytania z pliku tekstowego tych wszystkich plików jako elementów listy i to przeniosę. Pomysk całkiem dobry, tylko lekko utknąłem.

Foldery nazywają się kolejno 0-200, 200-400 itd. Robią się automatycznie aż do rozmiaru całej tablicy.

Ogólnie rzecz biorąc na chwilę obecna mam tablicę, gdzie każdy jej element to nazwa pliku do przeniesienia + zrobione foldery. Kombinuje teraz jak zrobić przenoszenie tych plików po 200 sztuk (na razie zrobiłem kopiowanie dla bezpieczeństwa). Muszę zapewne jakoś zagnieździć dwie pętle w sobie i tutaj się pogubiłem. Zrobiłem coś takiego:

 int c = 0;
            for (int a = 0; a < rozmiar_tablicy; a = a + 200)
            {               
                c = c + 200;
                for (j = 1; j <= 200; j++)
                {
                    File.Copy("E:\\" + pliki[j], "E:\\" + a + "-" + c + "\\" + pliki[j], true);
            }
            }
            Console.ReadKey();

generalnie całość działa, z ta różnicą, że do każdego folderu kopiują się te same pliki. Nie wiem jak “zresetować” pętlę odliczająca elementu tablicy, w taki sposób, aby “następne przejście” brało od 201-, 401 itd. Jak to ugryźć?


(Fizyda) #2

Problemem jest indeks drugiej tablicy, za każdym razem zaczynasz znów od 0 pliku

Powinno być coś takiego:

for(int i = 0; i < rozmair_tabicy; i += 200)
	for(int j = i; j < i + 200; j++)
		File.Copy("E:\\" + pliki[j], "E:\\" + i + "-" + (i + 200) + "\\" + pliki[j], true);

Console.ReadKey();

(arlid) #3

Fizyda, dzięki :slight_smile: Dział jak marzenie. Wiedziałem, ze coś prostego przeoczyłem, ale jakoś nie mogłem się odblokować, aby to zrozumieć.


(Fizyda) #4

Nie ma problemu :wink: