Listing 11-1. Metoda Main programu do wykrywania powtarzających się plików
Ten przykład rozpoczyna się w wierszu 11. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu StartingPoint.
Listing 11-2. Przedstawienie sposobu wywołania programu
Ten przykład rozpoczyna się w wierszu 51. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu StartingPoint.
Listing 11-3. Typy używane do przechowywania informacji o odnalezionych plikach
Ten przykład składa się z dwóch części. Pierwsza rozpoczyna się w wierszu 6. pliku FileNameGroup.cs, a druga w wierszu 5. pliku FileDetails.cs. Oba należą do solucji DuplicateFinder.sln umieszczonej w katalogu StartingPoint.
Listing 11-4. Metoda InspectDirectories
Ten przykład rozpoczyna się w wierszu 65. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu StartingPoint.
Listing 11-5. Pobranie plików z katalogu
Ten przykład rozpoczyna się w wierszu 70. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu StartingPoint.
Listing 11-6. Ustawianie aktualnego katalogu roboczego
Ten przykład rozpoczyna się w wierszu 11. pliku Program.cs należącego do solucji SetDirectory.sln umieszczonej w katalogu SetDirectory.
Listing 11-7. Pobieranie nazwy pliku bez pełnej ścieżki
Ten przykład rozpoczyna się w wierszu 86. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu StartingPoint.
Listing 11-8. Określanie wielkości pliku
Ten przykład rozpoczyna się w wierszu 90. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu StartingPoint.
Listing 11-9. Metoda DisplayMatches
Ten przykład rozpoczyna się w wierszu 107. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu StartingPoint.
Listing 11-10. Dodanie opcji /test
Ten przykład rozpoczyna się w wierszu 11. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu WithTest.
Listing 11-11. Usuwanie pliku
Ten przykład rozpoczyna się w wierszu 11. pliku Program.cs należącego do solucji TemporaryFiles.sln umieszczonej w katalogu TemporaryFiles.
Listing 11-12. Wyświetlanie losowej nazwy pliku
Ten przykład rozpoczyna się w wierszu 28. pliku Program.cs należącego do solucji TemporaryFiles.sln umieszczonej w katalogu TemporaryFiles.
Listing 11-13. Pobieranie położenia jednego z dobrze znanych katalogów
Ten przykład rozpoczyna się w wierszu 10. pliku Program.cs należącego do solucji WellKnownFolders.sln umieszczonej w katalogu WellKnownFolders.
Listing 11-14. Tworzenie katalogów testowych
Ten przykład rozpoczyna się w wierszu 157. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu WithTest.
Listing 11-15. Konfiguracja kontroli dostępu do nowych katalogów
Ten przykład rozpoczyna się w wierszu 159. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu PermissionsAndFiles.
Listing 11-16. Odbieranie uprawnień
Ten przykład rozpoczyna się w wierszu 178. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu PermissionsAndFiles.
Listing 11-17. Usuwanie katalogu
Ten przykład rozpoczyna się w wierszu 204. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu PermissionsAndFiles.
Listing 11-18. Tworzenie plików w katalogach testowych
Ten przykład rozpoczyna się w wierszu 199. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu PermissionsAndFiles.
Listing 11-19. Metoda CreateTestFiles
Ten przykład rozpoczyna się w wierszu 213. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu PermissionsAndFiles.
Listing 11-20. Zapis łańcucha znaków do nowego pliku
Ten przykład rozpoczyna się w wierszu 244. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu PermissionsAndFiles.
Listing 11-21. Tworzenie obiektu StreamWriter
Ten przykład rozpoczyna się w wierszu 10. pliku Program.cs należącego do solucji StreamWriterExample.sln umieszczonej w katalogu StreamWriterExample.
Listing 11-22. Zapis łańcucha znaków przy użyciu obiektu StreamWriter
Ten przykład rozpoczyna się w wierszu 10. pliku Program.cs należącego do solucji StreamWriterExample.sln umieszczonej w katalogu StreamWriterExample.
Listing 11-23. Dyskusyjna metoda File.Exists
Ten przykład rozpoczyna się w wierszu 279. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu ErrorHandling.
Listing 11-24. Pierwsza próba obsługi wyjątków związanych z operacjami wejścia-wyjścia
Ten przykład rozpoczyna się w wierszu 56. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu ErrorHandling.
Listing 11-25. Odbieranie uprawnienia
Ten przykład rozpoczyna się w wierszu 286. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu ErrorHandling.
Listing 11-26. Modyfikacja metody MakeTestDirectories w celu uwzględnienia testu praw dostępu
Ten przykład rozpoczyna się w wierszu 215. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu ErrorHandling.
Listing 11-27. Przydzielanie uprawnień do katalogu
Ten przykład rozpoczyna się w wierszu 304. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu ErrorHandling.
Listing 11-28. Przeglądanie katalogów
Ten przykład rozpoczyna się w wierszu 120. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu ErrorHandling.
Listing 11-29. Umieszczenie kodu obsługującego wyjątki w osobnej metodzie
Ten przykład rozpoczyna się w wierszu 319. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu FinerGrainedErrorHandling.
Listing 11-30. Przeglądanie kolekcji z możliwością zgłaszania wyjątków
Ten przykład rozpoczyna się w wierszu 120. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu FinerGrainedErrorHandling.
Listing 11-31. Obsługa wyjątków generowanych przez klasę FileInfo
Ten przykład rozpoczyna się w wierszu 341. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu FinerGrainedErrorHandling.
Listing 11-32. Pobieranie szczegółowych danych o plikach z obsługą błędów
Ten przykład rozpoczyna się w wierszu 130. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu FinerGrainedErrorHandling.
Listing 11-33. Zmodyfikowana metoda DisplayMatches porównująca zawartości plików
Ten przykład rozpoczyna się w wierszu 141. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu CompareInMemory.
Listing 11-34. Klasa zawierająca informacje o pliku
Ten przykład rozpoczyna się w wierszu 5. pliku FileContents.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu CompareInMemory.
Listing 11-35. Wczytywanie binarnej zawartości pliku
Ten przykład rozpoczyna się w wierszu 174. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu CompareInMemory.
Listing 11-36. Metoda CompareFiles
Ten przykład rozpoczyna się w wierszu 190. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu CompareInMemory.
Listing 11-37. Tworzenie kombinacji potencjalnych duplikatów
Ten przykład rozpoczyna się w wierszu 202. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu CompareInMemory.
Listing 11-38. Wyświetlanie duplikatów
Ten przykład rozpoczyna się w wierszu 219. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu CompareInMemory.
Listing 11-39. Porównywanie zawartości potencjalnych duplikatów bajt po bajcie
Ten przykład rozpoczyna się w wierszu 252. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu CompareInMemory.
Listing 11-40. Odczyt ze strumienia
Ten przykład rozpoczyna się w wierszu 508. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu LoadWholeStream.
Listing 11-41. Klasa FileContents wykorzystująca strumień FileStream
Ten przykład rozpoczyna się w wierszu 6. pliku FileContents.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu StreamCompare.
Listing 11-42. Modyfikacja metody LoadFiles
Ten przykład rozpoczyna się w wierszu 187. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu StreamCompare.
Listing 11-43. Zamykanie strumieni w metodzie DisplayMatches
Ten przykład rozpoczyna się w wierszu 165. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu StreamCompare.
Listing 11-44. Wersja metody CompareBytes wykorzystująca strumienie
Ten przykład rozpoczyna się w wierszu 256. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu StreamCompare.
Listing 11-45. Poruszanie się wewnątrz strumienia
Ten przykład rozpoczyna się w wierszu 306. pliku Program.cs należącego do solucji DuplicateFinder.sln umieszczonej w katalogu StreamCompare.
Listing 11-46. Kopiowanie danych z jednego strumienia do drugiego
Ten przykład rozpoczyna się w wierszu 9. pliku Program.cs należącego do solucji CopyStream.sln umieszczonej w katalogu CopyStream.
Listing 11-47. Asynchroniczne operacje wejścia-wyjścia na plikach
Ten przykład rozpoczyna się w wierszu 9. pliku Program.cs należącego do solucji AsyncIo.sln umieszczonej w katalogu RequestAsync.
Listing 11-48. Nie prosimy o działanie asynchroniczne
Ten przykład rozpoczyna się w wierszu 14. pliku Program.cs należącego do solucji AsyncIo.sln umieszczonej w katalogu RequestNotAsync.
Listing 11-49. Utworzenie katalogu i pliku w magazynie
Ten przykład rozpoczyna się w wierszu 10. pliku Program.cs należącego do solucji Isolated.sln umieszczonej w katalogu Isolated.
Listing 11-50. Używanie obiektów StreamReader oraz StreamWriter z mechanizmem Isolated Storage
Ten przykład rozpoczyna się w wierszu 28. pliku Program.cs należącego do solucji Isolated.sln umieszczonej w katalogu Isolated.
Listing 11-51. Zastosowanie strumienia szyfrującego
Ten przykład rozpoczyna się w wierszu 10. pliku Program.cs należącego do solucji Crypto.sln umieszczonej w katalogu Crypto.
Listing 11-52. Tworzenie klucza i wektora początkowego (IV)
Ten przykład rozpoczyna się w wierszu 26. pliku Program.cs należącego do solucji Crypto.sln umieszczonej w katalogu Crypto.
Listing 11-53. Szyfrowanie łańcucha znaków
Ten przykład rozpoczyna się w wierszu 36. pliku Program.cs należącego do solucji Crypto.sln umieszczonej w katalogu Crypto.
Listing 11-54. Konwersja danych na Base64
Ten przykład rozpoczyna się w wierszu 65. pliku Program.cs należącego do solucji Crypto.sln umieszczonej w katalogu Crypto.
Listing 11-55. Deszyfracja
Ten przykład rozpoczyna się w wierszu 72. pliku Program.cs należącego do solucji Crypto.sln umieszczonej w katalogu Crypto.