Задать вопрос
  • Как правильно сравнивать ENUM на C#?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    freeExec,

    важность сравнения с 0. Но с ним все работает, а без него синтаксис сходится но не работает.

    var attrsLeft    = FileAttributes.Hidden | FileAttributes.System;
    var attrsRight  = FileAttributes.System | FileAttributes.Offline;
    if((attrsLeft  & attrsRight) != 0){
           return;
    }

    Спасибо. Все работает.
  • Как правильно сравнивать ENUM на C#?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    Василий Банников,
    Спасибо, я так и не понял важность сравнения с 0. Но с ним все работает, а без него синтаксис сходится но не работает.
    Например:
    var attrsLeft    = FileAttributes.Hidden | FileAttributes.System;
    var attrsRight  = FileAttributes.System | FileAttributes.Offline;
    if(attrsLeft  ==  attrsRight){
           return;
    }

    Этот код НЕ работает. Данное равенство работает когда все атрибуты обоих сторон совпадают.
    А в следующем работает когда даже совпадает хотя бы один из атрибутов сторон.
    if((attrsLeft  & attrsRight) != 0){
           return;
    }
  • Как правильно сравнивать ENUM на C#?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    freeExec, Все равно что то не получается.
    Спасибо, Вы научили как отнимать ENUM.
    Но вот задачка
    var attrsLeft = FileAttributes.Hidden | FileAttributes.System | FileAttributes.Offline;
    var attrsRight = FileAttributes.Hidden | FileAttributes.System | FileAttributes.Offline;
    if (attrsLeft == attrsRight) 
    {
            return 0;
    }


    Данное условие выполняется когда все атрибуты обоих ENUM совпадают. Но как сравнивать чтобы сравнивалось хотя бы одно из обоих.
    Потому как с левой стороны у меня как бы атрибуты директории, а с правой как бы фильтр. В котором надо фильтровать на наличие хотя бы одного из атрибутов.
  • Какого года выбрать visual studio на с#?

    luck7777777, Кстати.
    Как ты решил решать проблему, на случай когда у тебя жесткий диск сгорит?
    К примеру ты сделал много проектов на Unity. А он в неподходящий момент, решил сгореть.
    Даже новый ПК со своим новым жестким диском горит легко. Это не связано с тем новый он или старый. А скорей всего связано со случайностью. (Я с этим постоянно имею дело).
    Надо выбирать внешний жесткий диск или внутренний. Когда используешь внутренний, родственники начнут на него тоже пихать свои резервные копии. Напрягать будет сильно, и места себе не хватать. Внешний жесткий диск тоже не надежно, и не хватает места, его тоже будут использовать родственники.
    Потом понимаешь что нужен сетевой жесткий диск, с поддержкой резервирования. Т.е. с поддержкой 2х дисков. Которые друг друга зеркалируют. Но емкости через 2 года не хватит. Надо покупать сетевой диск с 4мя отсеками и только 2мя занятыми дисками в нем.
    Это уже круглая сумма.
    Как правило, это более важные проблемы чем увеличение производительности даже в 2 раза.
  • Как правильно сравнивать ENUM на C#?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    freeExec, Спасибо. Подошло
    this.DirectoryAttributes &= ~FileAttributes.Offline;
  • Какого года выбрать visual studio на с#?

    luck7777777, К примеру, я пол года назад переживал что мой ПК (почти такой как у тебя) медленно работает. Установив сервер как фоновое приложение на свой ПК, этот сервер обрабатывает мои запросы по 15 секунд. т.е. в этом сервере находится сайт. И в браузере я открываю этот сайт 15 секунд.
    1.Я начал подбирать быстрые SSD. Почти купил такой быстрый. Но потом выяснил что он не совместим с моей материнкой по скорости используя PCIe.
    2.Потом выяснил что скорость самого быстрого SSD даже с новым ПК, все равно меня не устраивает в принципе.
    3.Копал, копал. И выяснил, надо Установить программу которая эмулирует жесткий диск в оперативе.
    4.На крайний случай оперативы куплю, но пока даже оперативу не покупал. Сервер работает быстрей всего.
    5.Помучавшись с недельку, нашел бесплатную прогу по работе с виртуальными дисками.
    6.Сервер обрабатывает запросы за 2 секунды.

    Учтите ожидание от нового ПК не такие радужные как кажется. Если хватит денег на ПК с 3х кратным приростом, то покупайте. А если нет, купите видюху очень крутую такую чтобы даже установив ее на новый ПК, Вам бы не приходила мысль, что это видюха слабовата.
    для 3Д редактора, может оказатся важней много оперативы, чем ее скорость.
  • Какого года выбрать visual studio на с#?

    luck7777777, Лучше купить производительную видюху, с большей оперативой. чем переходить на новый ПК.
    Ваша идея похожа на то что, у Вас есть автомобиль. Такой новый как у Вас стоит 1 миллион, А у Вас уже подержанный. Вы свой хотите продать за 500 тысяч, добавить еще 1 миллион, чтобы купить за 1.5 миллиона, более мощную машину.
    Так лучше лишний миллион, потратите на газовое оборудование, или прицеп купите, или гараж купите.
    Потому как результативность в работе измеряется не только базовой конфигурацией автомобиля, но и гаражем, и прицепом, и парктроником, подогревом сидений, видеорегистратором, камерой заднего вида, автозаводом и автопрогревом автомобиля, спутниковую сигнализацию поставьте.
    Потому как у Вас бютжет может и большой, но ограниченный. И Вам все равно нужно выбирать между тем что лучше, а что хуже. Все сразу позволить явно не сможете себе.
    ПК меняют в 3х-5 кратном увеличении производительности.
  • Какого года выбрать visual studio на с#?

    luck7777777, Вам может потребоваться производительность Видюхи, чем новый проц.
    Если Ваша видюха поддерживает DirectX 12. Это хорошо. Видюха состоит из разных сопроцессоров.
    Есть компоненты для рендеринга видеофайлов, есть для рендеринга 3Д графики, есть компоненты для общего назначения.
    Фишка в том что хоть Вы и работаете с 3Д графикой. Но есть предположиение, что это может быть не те ядра, которые Вам нужны для Unity. Для 3Д редакторов, нужны OpenCL, DirectComupte, Cuda.
    Вам нужно выяснить какой тип ускорения использует 3Д редактор. Посмотрите какие видюхи испльзуют каких версий эти технологии OpenCL, DirectComupte, Cuda. И выбирайте соответственно чтобы версия этой технологии была выше. Размер видеопамяти скорей всего мало важен, 4Гб достаточно должно быть.
    Есть профессиональные видюхи, где шейдерные вычисления по минимуму, а эти самые технологии выше по максимуму реализованы. Так что Цена видюхи напрямую не связана производительностью в 3Д редакторе.
    Но еще раз повторю, это может дать Вам больше производительности чем покупка нового ПК.
    А так же даже с видюхой, нужно много ОЗУ.
  • Как правильно сравнивать ENUM на C#?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    А можно как то минуснуть атрибут?
    var hideAndOffline = FileAttributes.Hidden | FileAttributes.Offline;
    var NewAttr = hideAndOffline - FileAttributes.Offline;
  • Как правильно сравнивать ENUM на C#?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    Михаил, мне кажется
    что
    dir.Attributes.HasFlag(FileAttributes.Hidden) || dir.Attributes.HasFlag(FileAttributes.Offline)

    2 раза считывает физически атрибуты у папки.
    А можно как то оба сравнения запихнуть в функцию HasFlag?
  • Как правильно сравнивать ENUM на C#?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    Михаил, Выяснилось что диски тоже имеют атрибут HIDDEN
    Странное дело. Почему то все мои логические диски как папки имеют атрибуты
    directory.Attributes = Hidden | System | Directory | Archive

    Как диск D: может иметь атрибут Hidden?
    Не удивительно что у меня код не работает.
    Таким образом я не могу отделить папку D:\$RECYCLE.BIN от папки D:\. Они оба имеют атрибут скрытой.
    И код ВАШ скорей всего правильный.
  • Как правильно сравнивать ENUM на C#?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    Странное дело. Почему то все мои логические диски как папки имеют атрибуты
    directory.Attributes = Hidden | System | Directory | Archive

    Как диск D: может иметь атрибут Hidden?
    Не удивительно что у меня код не работает.
    Таким образом я не могу отделить папку D:\$RECYCLE.BIN от папки D:\. Они оба имеют атрибут скрытой.
  • Как правильно сравнивать ENUM на C#?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    Странное дело. Почему то все мои логические диски как папки имеют атрибуты
    directory.Attributes = Hidden | System | Directory | Archive

    Как диск D: может иметь атрибут Hidden?
    Не удивительно что у меня код не работает.
    Таким образом я не могу отделить папку D:\$RECYCLE.BIN от папки D:\. Они оба имеют атрибут скрытой.
  • Как правильно сравнивать ENUM на C#?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    Ошибка синтаксиса.
    Пишет "Не удается НЕЯВНО преобразовать FileAttributes в bool"

    Я тоже так думаю что битовая маска. Типа Hidden = 0, ReadOnly=128, Offline = 256.
    Но логика синтаксиса не понятна. Потому как когда синтаксис сходится, то проверка не срабатывает.
  • Как правильно сравнивать ENUM на C#?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    if(dir.Attributes.HasFlag(FileAttributes.Hidden))
    return;

    Почему то папка "D:\" тоже попадает под это условие. Но у меня D: обычный диск, не какой он не скрытый.
  • Как в Visual Studio на C# собрать консольное приложение одним файлом на .NET 6?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    d-stream , Василий Банников .

    Помогите плииз.
    Я уже обрыл и яндекс, и stackoverflow и прочее.
    как правильно делать проверки ENUM ?

    DirectoryInfo dir = new DirectoryInfo("D:\\");
    if (dir.Attributes == (FileAttributes.Hidden & FileAttributes.Offline)) 
    {
            return;
    }

    Суть в том что когда я делаю поиск содержимого папки на под папки, там попадаются папки с именем D:\$RECYCLE.BIN
    А мне эти папки не нужны, но они вызывают ошибки, так же надо отсечь скрытые папки и системные на подобии Windows.
    В общем при выполнении этого кода, он не срабатывает на скрытые папки.
    Как правильно сравнивать ENUM?
  • Как в Visual Studio на C# собрать консольное приложение одним файлом на .NET 6?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    Если интересно.
    То прога простая, консольная, благодаря Вам ее написал. Показывает список папок и файлов пути которых больше чем 250 символов. Так как злой проводник Windows имеет ограничение для копирования файлов в 250 символов.
    Нет возможности делать резервные копии. При больших объемах резервного копирования всегда найдутся 1000 файлов которые выдадут ошибку при копировании.
    Надеюсь прога будет полезной.
    https://disk.yandex.ru/d/q6YMB4pSRc3Kgw
    620ead748c90b952359871.png
  • Как в Visual Studio на C# собрать консольное приложение одним файлом на .NET 6?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    twobomb, не доверяю я ему. Тем более он внешне косявый.
    Там даже нет функции отключить на 15 минут.
    Если интересно.
    То прога показывает список папок и файлов пути которых больше чем введенный 250 символов
    https://disk.yandex.ru/d/G70c-g8vneHUKg