TLDR
Nie jest to całkiem niemożliwe , ale jest to praktycznie bardzo trudne, ponieważ różni się w zależności od danych, które zamierzasz zapisać na płycie. Zasadniczo musisz zrobić to, co robi oprogramowanie do nagrywania płyt CD / DVD, aby ustalić, czy przed nagraniem przekroczyłeś pojemność dysku. [I jestem pewien, że niektóre, jeśli nie większość, takich programów nie robi tego idealnie .]
W przybliżeniu to, co już zrobiłeś, tj. Ograniczysz się do mniejszej pojemności, prawdopodobnie będzie jedynym wykonalnym rozwiązaniem w ogóle.
Program IsoBuster jest właściwie całkiem fajny. Można dość łatwo zobaczyć dokładnie, w jaki sposób pliki i katalogi są przechowywane na obrazie dysku, i prawdopodobnie można by przeprogramować, w jaki sposób określony system plików przydziela miejsce dla różnych typów plików, które go wykorzystują. Spróbuję tego sam.
Trochę szczegółów
Podobnie jak ty odkryłem, że nie można po prostu porównać całkowitego rozmiaru plików w bajtach i całkowitej „pojemności brutto” w bajtach dysku.
Po pierwsze, systemy plików, zarówno na dysku twardym, jak i na dyskach optycznych, takich jak dyski CD i DVD, wymagają nieco miejsca na dane o plikach, np. Katalogi, w których są przechowywane, nazwę pliku, kiedy był on ostatnio modyfikowany itp. .
Każdy system plików (prawie na pewno) będzie wymagał innej ilości miejsca dla różnych zestawów plików i katalogów; będą także podlegać różnym ograniczeniom pod względem takich rzeczy, jak maksymalna długość nazw plików, czy nazwy plików mogą składać się ze znaków Unicode itp.
Różne systemy plików również obsługują lub wymagają różnych rozmiarów sektorów / bloków, co jest mniej więcej najmniejszą ilością miejsca (prawie zawsze wyrażoną w bajtach), którą można przypisać do pliku, tj. Rozmiar sektora 512 bajtów oznacza, że każdy plik jest przydzielany co najmniej 512 bajty (tylko dla danych pliku). Jednak w przypadku systemu plików UDF, którego można używać w przypadku dysków CD i DVD (oraz dysków Blu-ray):
Małe pliki (i katalogi) mogą być przechowywane w samym bloku wprowadzania plików, podobnie jak pliki osadzone w systemie plików NTFS.
tzn. małe pliki (i katalogi) mogą być przechowywane w samych „metadanych systemu plików”. [Źródłem jest zasób [4] poniżej.]
Niektóre zasoby
- Zrozumienie DVD - Rozmiar, konfiguracja i pojemność dysku
- Universal Disk Format - Wikipedia, darmowa encyklopedia
- Specyfikacja Universal Disk Format®, wersja 2.50
- Wprowadzenie Wenguanga do Universal Disk Format (UDF)
- CDBurnerXP: Utwórz dysk z danymi
- Sektor dyskowy - Wikipedia, wolna encyklopedia
- Tworzenie dysków optycznych - Wikipedia, wolna encyklopedia
Od [5]:
Nawet jeśli nie dodasz żadnych plików, wykorzystane miejsce na dysku będzie wynosić powyżej 1 MB. Jest tak, ponieważ każdy obraz danych ma nieodłączny narzut systemowy na tabele alokacji, dane woluminu, przestrzeń systemową i tabele ścieżek (aby wymienić tylko kilka). Ponadto należy zarezerwować trochę miejsca na procesy wprowadzania i wyprowadzania, ok. 13 MB od wersji 4.5 CDBurnerXP.
Opierając się na [7], nie sądzę, że „wprowadzenie” i „wyprowadzenie” koniecznie dotyczy dysków z danymi.