- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
internal class Log
	{
		public static void WriteLine(string methodName, UpdateFile file, Exception e, LogType type = LogType.Success)
		{
			using (FileStream fileStream = new FileStream(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\patch.log", FileMode.OpenOrCreate))
			{
				using (StreamReader streamReader = new StreamReader(fileStream))
				{
					using (StreamWriter streamWriter = new StreamWriter(fileStream))
					{
						streamWriter.WriteLine(string.Format("Launcher | {0} | {1} | {2} | {3} | {4}", new object[]
						{
							type,
							methodName,
							file.FullPath,
							e,
							DateTime.Now
						}), streamReader.ReadToEnd().Length);
					}
				}
			}
		}
...
                                 
        
            Как получить размер файла? Правильно, надо прочитать его в память и взять размер данных из памяти :facepalm:
Зачем получать размер файла, даже не спрашивайте ))
Источник: hxxp://promo.riseofrunes.com/InstLauncher.zip (C#, декомпилятор).
        
        
A: А вдруг файловая система вернёт неверный размер файла?
B: Ну, считаем весь файл в память и посчитаем размер в памяти.
A: А вдруг файловая система выдаст не всё содержимое файла?
B: ...
На планках без ECC это заканчивается всякими рандомными багами...
Да и для вычисления чексуммы в первый раз ты файл тоже с диска считаешь, а им верить нельзя.
Может, конечно, ты в уме мд5 умеешь, и хорошо запоминаешь, но нафиг суммы, лучше тогда сразу запоминай сами файлы.
На тот же носитель. Один хер все чексуммы и коды коррекции только с определённой вероятностью работают...
Смотри, есть два носителя: на какой сам сохранишь, с какого для матери считаешь?
Что это за изврат такой?
А это уже разврат