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

    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
    private static bool IsOnlyServiceWindowsFile(string directory)
    {
    	string[] ignoredFiles = { "Thumbs.db", "Desktop.ini" };
    	var files = Directory.GetFiles(directory);
    	foreach (var file in files)
    	{
    		var filename = Path.GetFileName(file);
    		foreach (var ignored in ignoredFiles)
    		{
    			if (string.Equals(filename, ignored, StringComparison.OrdinalIgnoreCase))
    			{
    				goto NEXT;
    			}
    		}
    		return false;
    		NEXT: ;
    	}
    	return true;
    }

    Пришёл в C# из Java, где есть замечательная фича под названием Label.
    В C# для вложенных циклов оказался лишь GOTO.
    Метод проверяет наличие в каталоге только сервисных файлов винды.

    Запостил: brnovk, 01 Мая 2018

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

    • Не стоило учить Джава ради этого сомнительного удовольствия.
      Тебе надо было прийти прямо - в Visual Basic.
      Ответить
    • return Directory.GetFiles(directory).Any(f => ignoredFiles.Contains(Path.GetFileName(f )));
      Ответить
      • ЛЯМБДЫ РУЛЯТ!!111
        Ответить
      • Ага, только не Any, а All. Ну и в предположении, что
        >StringComparison.OrdinalIgnoreCase
        можно опустить, считая, что система создает файлы всегда в нужном регистре.
        Ответить
      • Ну и зачем ты переписал в одну строчку то, что было написано в 19?

        Ты разве не знаешь что программистам платят за строки?
        Ответить
        • private
          static
          bool
          IsOnlyServiceWindowsFile
          (
          string directory
          )
          {
          string
          [
          ]
          ignoredFiles
          =
          {
          "Thumbs.db"
          ,
          "Desktop.ini"
          }
          ;
          var
          files
          =
          Directory
          .
          GetFiles
          (
          directory
          )
          ;
          foreach
          (
          var
          file
          in
          files
          )
          {
          var
          filename
          =
          Path
          .
          GetFileName
          (
          file
          )
          ;
          foreach
          (
          var
          ignored
          in
          ignoredFiles
          )
          {
          if
          (
          string
          .
          Equals
          (
          filename
          ,
          ignored
          ,
          StringComparison
          .
          OrdinalIgnoreCase
          )
          )
          {
          goto
          NEXT
          ;
          }
          }
          return
          false
          ;
          NEXT:
           ;
          }
          return
          true
          ;
          }

          Ну
          и
          где
          же
          мои
          несметные
          богатства
          ?
          Ответить

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