1. C# / Говнокод #23471

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 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#, декомпилятор).

    Запостил: luxtau, 31 Октября 2017

    Комментарии (16) RSS

    • не доверяет файловой системе
      Ответить
      • # не доверяет файловой системе

        A: А вдруг файловая система вернёт неверный размер файла?
        B: Ну, считаем весь файл в память и посчитаем размер в памяти.
        A: А вдруг файловая система выдаст не всё содержимое файла?
        B: ...
        Ответить
        • Кругом обман!
          Ответить
        • А вдруг память вернёт неверный розмер?
          Ответить
          • А вдруг память не может вспомнить, что именно в неё положили?

            На планках без ECC это заканчивается всякими рандомными багами...
            Ответить
        • Все правильно, надо чексумы сохранять. Дискам верить нельзя.
          Ответить
          • Ну у что ты будешь делать с этой чексуммой? Надо чтоб ECC!
            Ответить
          • А чексумму ты куда сохранишь и откуда считаешь, если дискам верить нельзя?
            Да и для вычисления чексуммы в первый раз ты файл тоже с диска считаешь, а им верить нельзя.
            Может, конечно, ты в уме мд5 умеешь, и хорошо запоминаешь, но нафиг суммы, лучше тогда сразу запоминай сами файлы.
            Ответить
            • > куда сохранишь
              На тот же носитель. Один хер все чексуммы и коды коррекции только с определённой вероятностью работают...
              Ответить
            • >> ты куда сохранишь и откуда считаешь
              Смотри, есть два носителя: на какой сам сохранишь, с какого для матери считаешь?
              Ответить
            • Ты не прав, в первый раз файлы не считывают с диска. В первый раз файлы наоборот высирают на диск.
              Ответить
    • # hxxp://

      Что это за изврат такой?
      Ответить

    Добавить комментарий