Как сделать кликабельный путь к файлу в asp.net c # - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь получить кликабельный путь к файлу с помощью веб-формы asp.net c # visual studios, то есть сказать, что это похоже на проводник Windows, позволяющий человеку перемещаться по папкам разных уровней и т. Д., Может кто-нибудь предоставить любойссылки, чтобы помочь мне начать? [1]: https://i.stack.imgur.com/WyyLq.png

1 Ответ

0 голосов
/ 31 октября 2019

Вы можете попытаться получить строку пути и разделить ее на несколько частей. Затем сохраните их в нескольких текстовых полях, ярлыках, кнопках или что угодно. Моя форма выглядит следующим образом: Форма изображения

Во-вторых, вам придется обновить эти (в моем случае) текстовые поля, чтобы сохранить путь. Посмотрите мой код и решите, что вы хотите использовать, и если вам нужно его изменить.

private void changePath()
    {
        String path = webBrowser1.Url.AbsolutePath;
        if (path.Contains(@"/")) { path = path.Replace(@"/", @"\"); }
        string[] directories = path.Split(Path.DirectorySeparatorChar);
        int count = directories.Count();

        if (count <= 6)
        {
            textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; textBox4.Text = ""; textBox5.Text = ""; textBox6.Text = "";
            for (int i = 0; i < count; i++)
            {
                String txt = "textBox" + (i + 1);
                TextBox tbx = this.Controls.Find(txt, true).FirstOrDefault() as TextBox;
                tbx.Text = directories[i];
            }
        }
        else
        {
            int p = count / 6;

            int z = count - (p * 6);
            for (int i = 0; i < count; i++)
            {

                int g = i - 1;
                String txt = "textBox" + (i + 1);
                TextBox tbx = this.Controls.Find(txt, true).FirstOrDefault() as TextBox;
                tbx.Text = directories[z];
                z++;
                if (i == 5)
                {
                    break;
                }
            }
        }
    }

Второй шаг - сделать функции щелчка по (в моем случае) текстовыми полями. Вот один из примеров того, как вы можете это сделать. Убедитесь сами, что вы можете сделать.

private void textBox5_Click(object sender, EventArgs e)
    {
        if(!textBox5.Text.Equals(String.Empty))
        {
            String p = webBrowser1.Url.AbsolutePath;
            if(!textBox6.Text.Equals(String.Empty))
            {
                webBrowser1.Url = new Uri(p.Replace(@"/" + textBox6.Text, ""));
            }
        }
    }

Этот код удалит последний фрагмент, оставив вам новый путь. Пример:

До: C: \ Users \ USERNAME \ Desktop \ C #

После:

После: C: \ Users \ИМЯ ПОЛЬЗОВАТЕЛЯ \ Рабочий стол

Опять же, вы должны посмотреть, что работает для вас. Есть несколько способов решить вашу проблему.

Удачи!

Twan.

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