2013-03-08 9 views
5

Kiedykolwiek kopiujemy dowolny plik multimedialny lub dowolny plik oprócz tekstu (nie jestem pewien) w clipboard, czy zapisuje on adres kopii pliku lub danych, ponieważ kiedy kopiujemy dowolny film o wielkości 3 GB , Rozmiar dysku C nie zwiększa się oznacza to, że schowek przechowuje adres, a nie kopię. Czy to prawda?W jaki sposób dane są przechowywane w schowku Windows

Odpowiedz

7

Jeśli kopiowanie plików, masz do czynienia ze wskaźnikami plików, takich jak uchwyt HDROP, które zajmują prawie nie ma miejsca . I prawie nie ma czasu na wykonanie kopii. Jeśli faktycznie trzeba było czekać 3 GB na skopiowanie do bufora pamięci, to czekałoby się dużo czasu, byłoby dużo operacji we/wy i gdybyś nie miał dużej ilości pamięci, twój system musiałby wykorzystać przestrzeń pliku stronicowania, powodując w ten sposób jeszcze więcej operacji we/wy.
Należy również pamiętać, że w przeciwieństwie do tekstu/HTML/RTF/grafiki (gdzie dane znajdują się w schowku), schowka nie można używać jako siatki bezpieczeństwa. Za pomocą tekstu możesz skopiować, a następnie usunąć tekst i wkleić go, aby go odzyskać. Nie tak z plikami. Jeśli skopiujesz plik, a następnie usuniesz ten plik, nie będziesz mógł go wkleić. Może się to wydawać oczywiste, ale ważne jest, aby zrozumieć, kiedy używasz dowolnego menedżera schowka, który pozwala wrócić i wkleić wcześniejsze klipy. Możesz na przykład wkleić wskaźnik pliku z 3 dni wcześniej, ale wynik nie będzie tym plikiem sprzed 3 dni. Będzie to niezależnie od tego, który wskaźnik pliku odniesie na dzisiejszym dysku.

+0

Chris możemy pobrać wskaźnik pliku ze schowka. –

+1

CF_HDROP zawiera wskaźnik pliku. zobacz: http://msdn.microsoft.com/en-us/library/windows/desktop/bb776902(v=vs.85).aspx#CF_HDROP –

+0

Chris próbował link podany przez ciebie, ale nie jestem w stanie zrozumieć, jak aby pobrać wskaźnik pliku. –

3
does it stores the address of file 

Zasadniczo tak, ale nie naprawdę zająć ale tzw uchwyt pliku.

Jest to abstrakcyjna wartość odniesienia dla zasobu, często pamięci lub otwartego pliku, lub potoku.

Prawidłowo, w systemie Windows (i ogólnie w informatyce) uchwyt jest abstrakcją, która ukrywa prawdziwy adres pamięci od użytkownika API, umożliwiając systemowi przejrzystą reorganizację pamięci fizycznej w programie. Rozwiązanie uchwytu do wskaźnika blokuje pamięć, a zwolnienie uchwytu unieważnia wskaźnik. W tym przypadku myśl o tym jako o indeksie w tabeli wskaźników. Używasz indeksu do wywoływania funkcji API systemu, a system może dowolnie zmieniać wskaźnik w tabeli.

Można spojrzeć na ten artykuł, jeśli chcesz wiedzieć, jak dokładnie schowek działa: http://blogs.msdn.com/b/ntdebugging/archive/2012/03/16/how-the-clipboard-works-part-1.aspx

+1

Czy możemy uzyskać abstrakcyjną wartość odniesienia ze schowka. –

1

@Hot Chłodny Hodowla:

Aby skopiować ścieżkę do pliku/folderu

Naciśnij Shift, zaznacz plik lub folder, kliknij prawym przyciskiem, pojawi się dodatkowy menu_option jako „Kopiuj jako ścieżkę ". Wybierz go, a ścieżka zostanie skopiowana do schowka.