Я делаю c# winform приложение для входа и регистрации. я просто хочу проверить доступность имени пользователя в моем приложении - PullRequest
0 голосов
/ 26 января 2020
    private void signupBtn_Click(object sender, EventArgs e)
    {
        if (usertxt.Text == "Username" || passtxt.Text == "Password" || string.IsNullOrEmpty(usertxt.Text) || string.IsNullOrEmpty(passtxt.Text))
        {
            DialogResult DR_defaultError = MessageBox.Show("Validation Erorr !\n\n1) *Fill all Fields.\n\n2) *Cannot have default Username and Password.", "ERROR!", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);

            if (DR_defaultError == DialogResult.Retry)
            {
                this.Close();
                th = new Thread(againOpenSignup);
                th.SetApartmentState(ApartmentState.STA);
                th.Start();
            }
            else if (DR_defaultError == DialogResult.Cancel)
            {
                Application.Exit();
            }
        }
        else
        {
            try
            {
                // creating a reading stream (for checking the pre-created username)
                StreamReader reader = new StreamReader(@"AllUserData//" + usertxt.Text + ".txt");
                string username = reader.ReadLine();

                if (usertxt.Text.Equals(username))
                {
                    MessageBox.Show("This Username is Taken !", "Erorr !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    reader.Close();
                }
            }
            catch(FileNotFoundException)
            {
                StreamWriter writer = new StreamWriter(@"AllUserData//" + usertxt.Text + ".txt");
                writer.WriteLine(usertxt.Text);
                writer.WriteLine(passtxt.Text);

                writer.Flush();
                writer.Close();

                DialogResult DR_backToLogin = MessageBox.Show("New username and password created.\n\nNow you can Login.\n\nGo back to Login?", "SignUpDone!", MessageBoxButtons.YesNo, MessageBoxIcon.Information);

                if (DR_backToLogin == DialogResult.Yes)
                {
                    this.Close();
                    th = new Thread(redirectLoginForm);
                    th.SetApartmentState(ApartmentState.STA);
                    th.Start();
                }
                else
                {
                    Application.Exit();
                }
            }
        }
    }

Я ищу доступность имен пользователей внутри файла с именем, аналогичным имени пользователя, например: если имя пользователя "dani sh", то имя файла совпадает с именем "dani sh".

Проблема в том, что если есть имя пользователя, например, "Dani sh" и "dani sh". Мой код распознает как одно и то же имя пользователя. но они разные. Я попробовал несколько вещей, но ничего не мог с собой поделать.

1 Ответ

0 голосов
/ 26 января 2020

Не совсем уверен, если это сработает, но здесь идет:

На основе GetFileSystemEntries

var path = @"AllUserData//";
var filter = "*.txt";
string[] txtEntries = System.IO.Directory.GetFileSystemEntries(path, filter); 
var fileExists = txtEntries.ToList().Where(te => te.Equals(usertxt.Text)).Any();

Я предполагаю, что у вас есть unix или windows 10 чувствительная к регистру папка для хранения файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...