Kopiowanie plików pomiędzy partycjami

0

Witam wszystkich!

Mam nadzieję, że mój temat okaże się nietuzinkowy i będzie cieszył sie zainteresowaniem.

Chciałbym, aby powstał program, który będzie wstanie kopiować pliki, niekoniecznie między partycjami, ale wykorzystujący pamięc ram do tego procesu.
Wszyscy wiedzą jak wygląda kopiowanie między dwiema partycjami: jest wolne, dysk niejednokrotnie trzeszczy (co jest niepokojące i trudno określić jaki ma wpływ na sprzęt).

Nie jestem programistą, ale wiem, że napisanie takiego proga nie byłoby skomplikowane i czasochłonne dla kogoś, kto się na tym zna. Szukałem w sieci, ale nie udało mi sie znaleźć czegoś działającego na takiej zasadzie:

[Fragment pliku (np. 10 MB)] ---> [Pamięć operacyjna] ---> [miejsce docelowe na dysku twardym] itd. aż do powielenia całego pliku

Namiastką takiego programu okazał się dla mnie winrar. Opiszę po krótce jak go używałem, zgodnie z powyższym schematem.

Aby przenieść plik wielkości 300 mb z jednej partycji na drugą, przy pomocy tzw. Ramdisku o pojemności 32 mb rozpocząłem tworzenie archiwum programem winrar z opcją dzielenia plików na części (określiłem rozmiar części pliku na 30 mb). Po utworzeniu pierwszej części WinRar monitował brak miejsca na utworzenie kolejnej. Wtedy rozpocząłem wypakowywanie utworzonej przed chwilą części pliku (która znajdowała się na ramdisku) na drugą partycję, po czym zostałem poproszony o podanie ścieżki do drugiej części. Następnie usunąłem pierwszą część w celu zwolnienia miejsca na ramdisku i wznowiłem tworzenie archiwum, tworzenie drugiej jego części. W ten sposób postepowałem az do skopiowania całego pliku.

Może ktoś zna taki program albo mógłby go napisać?

0

Ja już mam program, który robi dokładnie coś takiego. W moim commanderze będącym jeszcze w fazie rozwoju kopiuje pliki poprzez bufor w pamięci w porcjach po np. 16 kB. Ale ta porcja może być dowolnej wielkości.

0

Jest taki program - Eksplorator Windows ->Prawy przycisk myszy ->Przenieś Tutaj ;-)
oj przepraszam -> Kopiuj Tutaj :-D No tak miało byc kopiowanie ...

0

A póki co to weź zainstaluj total commander i ustaw sobie duży bufor w opcjach programu. to też działa w taki sposób, jakiego oczekujesz.

0
Kowalski napisał(a)

A póki co to weź zainstaluj total commander i ustaw sobie duży bufor w opcjach programu. to też działa w taki sposób, jakiego oczekujesz.

gdzieś na http://totalcmd.pl jest również odpowiedni plugin do totalcmd</url>

0

A tak na poważnie , to można postawić pytanie jak zmusić program aby
przydzielił pamięć na bufory przeznaczone na kopiowanie w RAM a nie np. w pliku.
Przydzilenie przez program pamięci na bufor o dużych rozmiarach kończy się
na pamięci wirtualnej na dysku ,niestety ..

0
dzejo napisał(a)

Przydzilenie przez program pamięci na bufor o dużych rozmiarach kończy się
na pamięci wirtualnej na dysku ,niestety ..

No to juz kwestia systemu i jego rozwiazania pamieci wirtualnej. Program nie ma tu nic do rzeczy - on sadzi, ze wszystko dzieje sie w RAMie.

pozdrawiam
johny

0

No właśnie: jak go zmusić? Chyba się nie da, bo wg mnie nie ma jeszcze takiego programu. Myslałem raczej o czymś takim, gdzie będzie można umieścić bufor na dysu w eksploratorze windows, a tym dyskiem będzie właśnie ramdisk, lub o programie, który wykorzystuje wyłącznie pamięć ram, ale jeśli program kożysta z pamięci ram w zwykły sposób, to bardzo prawdopodobne, że jeśli bufor będzie odpowiednio duży, to kopiowanie "niby przez RAM" będzie odbywało się przy udziale pliku wymiany, który znajduje się na dysku twardym (tak, jak napisali dżejo i johny bravo).

0

Oj John ja Cie podziwiać i szanowac ale ;-) jak masz w kompie 128 MB RAMU
,a program zeżre 4 GB to potrzebna pamięć dla programu jest symulowana w pliku wymiany.
W Win32 program może zająć cały dysk instrukcją new czy tam malloc , rezerwując
pamięc dla siebie. ;-) , będzie miał przydzieloną pamięć ale ramu całego nie zajmie
nie da rady , wiadomo dla czego :-/
Zastanawiam się tylko czy można np. Na 100% przydzielić jakąś funkcją API pamięć
w RAMIE ew. dostać komunikat od funkcji że jest to nie możliwe .

0

Dzejo, z tego, co piszesz wnioskuję, że to mogłoby być trudne. Nie łatwiej więc zrobić program wykorzystujący Ramdisk (który na 100 korzysta z ramu i tylko z ramu)?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0