@Fenion
Работаю за еду

Можно ли создать директорию при отсутствии части пути при скачивании файлов?

Здравствуйте, пишу игровой лаунчер на C#. Возникла проблема при проверке целостности файлов клиента, отсутствие определённого файла лаунчер замечает и загружает необходимый файл, однако если удалить часть пути к файлу, лаунчер не может загрузить туда его (System.IO.DirectoryNotFoundException: Не удалось найти часть пути). C# занимаюсь 2 дня, отсюда и сложности. Вот код
private void CheckMeta()
        {
            string api_adress = "http://localhost/api";
            string clientFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\aaaa\";
            WebRequest request = WebRequest.Create(api_adress + "/meta-inf");
            request.Method = "POST";
            request.ContentType = "application/json; charset=utf-8";
            request.Proxy = new WebProxy();
            Stream res = request.GetResponse().GetResponseStream();
            StreamReader read = new StreamReader(res);
            string meta = read.ReadToEnd();
            var metas = JsonConvert.DeserializeObject<Meta_obj[]>(meta);
            foreach (var Meta_obj in metas)
            {
                if (!File.Exists(clientFolder + Meta_obj.Artefact))
                {
                    progressBar1.Visible = true;
                    dwn_text.Visible = true;
                    WebClient client = new WebClient();
                    client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(downloadProgress);
                    client.DownloadFileCompleted += new AsyncCompletedEventHandler(downloadDone);
                    client.DownloadFile(
                            new System.Uri("http://localhost:3001" + Meta_obj.Src),
                            clientFolder + Meta_obj.Artefact
                        );
                }
                else
                {
                    if (Meta_obj.Check_hash)
                    {
                        if (this.CheckHash(clientFolder + Meta_obj.Artefact) != Meta_obj.Hash)
                        {
                            progressBar1.Visible = true;
                            dwn_text.Visible = true;
                            WebClient client = new WebClient();
                            client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(downloadProgress);
                            client.DownloadFileCompleted += new AsyncCompletedEventHandler(downloadDone);
                            client.DownloadFileAsync(
                                new System.Uri("http://localhost:3001" + Meta_obj.Src),
                                clientFolder + Meta_obj.Artefact
                            );
                        }
                    }
                }
            }
            read.Close();
            this.ClientStart();
        }
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
@Fenion Автор вопроса
Работаю за еду
Разобрался, в этом помог Path.GetDirectoryName()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы