Kopiowanie plików pomiędzy partycjami

Odpowiedz Nowy wątek
2006-09-20 19:21
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ć?

Pozostało 580 znaków

2006-09-20 19:38
Kowalski
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.

Pozostało 580 znaków

2006-09-20 19:38
0

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


Pozostało 580 znaków

2006-09-20 19:44
Kowalski
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.

Pozostało 580 znaków

2006-09-20 20:03
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>


google.pl && wikipedia.org

Pozostało 580 znaków

2006-09-20 20:06
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 ..


Pozostało 580 znaków

2006-09-20 20:45
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


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-09-20 20:53
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).

Pozostało 580 znaków

2006-09-20 20:55
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 .


Pozostało 580 znaków

2006-09-20 21:06
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)?

Pozostało 580 znaków

2006-09-20 21:11
0

No czlowieku jak masz 512 MB w samym kompie to nie zrobisz na życzenie 512 MB Ram-Disk.
Pytanie o przydział pamięci przez API , opieram na tym że istnieją funkcje przydzielające
pamięć w pliku wymiany na żądanie ( ograniczone rozmiarem dysku ) , więc może są i dla RAM ..? [???]
Własciwie to przy pisaniu aplikacji nikt się nad tym nie zastanawia.
Jak napisał John Program przydziela tyle pamieci ile mu potrzeba , reszta to sprawa systemu
i nie mamy na to wpływu ..
Teraz pytanie ..A może programy typu RAM-Dysk korzystają z pliku wymiany , ?
Jeśli nie to znaczy że istnieje sposób przydziału w RAM ,,,
Jak powiedział Krecik POMOC!! ,POMOCC!!
Życie uczy pokory , początkowo pierwsze pytanie w wątku wydało mi się głupie... [glowa]


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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