Как читать условие с txt файла

Это то, что находится в txt

processName == "taskhost" || processName == "services" 
                || processName == "svchost" || processName == "csrss" 
                || processName == "idle" || processName == "powershell" 
                || processName == "System" || processName == "webview2" 
                || processName == "rundll32" || processName == "Rtk" 
                || processName == "Gamebar" || processName == "RuntimeBroker" 

Вот так выглядит код, хочу чтобы юзер мог сам добавлять в txt свои процессы, то есть вместо

private bool IsSystemProcess(Process process)
{
    string processName = process.ProcessName;


    // Добавьте сюда другие системные процессы, которые нужно исключить
    if (processName == "taskhost" || processName == "services"
        || processName == "svchost" || processName == "csrss"
        || processName == "idle" || processName == "powershell"
        || processName == "System" || processName == "webview2"
        || processName == "rundll32" || processName == "Rtk"
        || processName == "Gamebar" || processName == "RuntimeBroker")
    {
        return true;  // Процесс является запрещенным
    }

    return false;
}

было типо этого if('Текстовый документ')


Ответы (1 шт):

Автор решения: aepot

Советую попробовать JSON.

using System.Text.Json;

Берём массив, например такой

string[] processNames = new[] { "taskhost", "services", "svchost", "csrss" };

Сериализуем в файл

File.WriteAllText("file.json", JsonSerializer.Serialize(processNames));

Получаем файл с таким содержимым

["taskhost","services","svchost","csrss"]

Далее файл можно загрузить

string text = File.ReadAllText("file.json");
string[] names = JsonSerializer.Deserialize<string[]>(text);

Теперь ваш метод можно упростить до такого

private bool IsSystemProcess(Process process)
{
    string text = File.ReadAllText("file.json");
    string[] names = JsonSerializer.Deserialize<string[]>(text);

    string processName = process.ProcessName;

    return names.Contains(processName);
    // или так
    // return Array.IndexOf(names, processName) >= 0;
}

Теперь, если хотите, можете в файл руками дописывать список, когда угодно, в кавычках через запятую.


Кстати, JSON можно сохранить с форматированием

var options = new JsonSerializerOptions { WriteIndented = true };
File.WriteAllText("file.json", JsonSerializer.Serialize(processNames, options));

Тогда файл получится такой

[
  "taskhost",
  "services",
  "svchost",
  "csrss"
]

Вместо массива можно использовать список List<string>, например, если вы хотите добавлять или удалять элементы прямо в коде, работать с JSON оно будет точно так же.

→ Ссылка