Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 2
Регистрация: 25.01.2015
Сообщений: 14
1

Лаунчер с докачкой

27.11.2016, 20:39. Просмотров 1569. Ответов 2
Метки нет (Все метки)

Доброго времени суток! Я вот хочу написать лаунчер с докачкой, нашёл для этого неплохую "либу" - https://github.com/Avira/.NetFileDownloader
всё настроил,подключил, но в итоге программа не стартует закачку если использовать кеш.Вот сам код (Новая папка (3).zip). Без кеша всё отлично качает.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2016, 20:39
Ответы с готовыми решениями:

работа с фтп и докачкой
Подскажите решение для скачивания файла по протоколу ftp и поддержкой докачивания.

Закачка на samba с докачкой
Добрый день. Есть сервер с запущенной samba. Задача закачивать на samba сервер архивы по 100ГБ....

Показ увеличенной картинки с докачкой большого файла
Задача: при клике на миниатюру показать увеличенное изображение. Для этого в стилях прописано ...

Посоветуйте хороший FTP ActiveX или библиотеку с докачкой и Upload.
Посоветуйте хороший FTP ActiveX или библиотеку с докачкой и Upload. Можно платный.

2
0 / 0 / 2
Регистрация: 25.01.2015
Сообщений: 14
28.11.2016, 00:08  [ТС] 2
мб вернуть вариант без докачки, но очень уж хочется с ней
0
0 / 0 / 2
Регистрация: 25.01.2015
Сообщений: 14
03.12.2016, 04:01  [ТС] 3
Лучший ответ Сообщение было отмечено Mortan как решение

Решение

вот что мне написал автор : hi @mortany here the "example" for the interface, but the implementation of how you store your data still needs to be done by you.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
namespace yourNameSpace
{
    public class DownloadCache : IDownloadCache
    {
 
        private DownloadCache()
        {
            // your code goes here
        }
 
        public void Invalidate(Uri uri)
        {
            // your code goes here
        }
 
        public void Add(Uri uri, string fileName, WebHeaderCollection headers)
        {
            // your code goes here
            // add filename (also path where your file is stored) and meta information about local file and information from server to your cache storage.
        }
 
        public string Get(Uri source, WebHeaderCollection headers)
        {
            // your code goes here
        }
 
        private bool FileCanBeTakenFromCache(string fileName)
        {
            // your code goes here
        }
    }
}
я сделал класс как указано тут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
    public class DownloadCache : IDownloadCache
    {
 
        Chache[] chaches = new Chache[0]; 
 
        [Serializable]
        private class Chache
        {
            public Uri uri { get; set; }
            public string path { get; set; }
            public WebHeaderCollection headers { get; set; }
        }
 
 
        public DownloadCache()
        {
            BinaryFormatter binFormat = new BinaryFormatter();
 
            bool test = File.Exists("user.dat");
 
            if(test)
            {
                using(FileStream fs = new FileStream("user.dat", FileMode.Open))
                {
                    chaches = (Chache[])binFormat.Deserialize(fs);
                }
                
            }
 
            // your code goes here
        }
 
        public void SaveChache()
        {
            if (chaches == null)
                return;
 
            BinaryFormatter binFormat = new BinaryFormatter();
            using (FileStream fs = new FileStream("user.dat", FileMode.OpenOrCreate))
            {
               binFormat.Serialize(fs, chaches);
            }
        }
 
        public void Invalidate(Uri uri)
        {
            int n = 0;
            while (n < chaches.Length)
            {
                if (chaches[n].uri == uri)
                {
                    var b = new int[chaches.Length - 1];
                    Array.Copy(chaches, 0, b, 0, n);
                    Array.Copy(chaches, n + 1, b, n, chaches.Length - n - 1);
                    Array.Clear(chaches, 0, chaches.Length);
                    Array.Resize(ref chaches, chaches.Length - 1);
                    Array.Copy(b, 0, chaches, 0, b.Length);
                    break;
                }
                n++;
            }
        }
 
        public void Add(Uri uri, string fileName, WebHeaderCollection headers)
        {
            int n = chaches.Length;
            Array.Resize(ref chaches, chaches.Length+1);
            chaches[n] = new Chache();
            chaches[n].uri = uri;
            chaches[n].path = fileName;
            chaches[n].headers = headers;
            // add filename (also path where your file is stored) and meta information about local file and information from server to your cache storage.
        }
 
        public string Get(Uri source, WebHeaderCollection headers)
        {
            int n = 0;
            while( n < chaches.Length)
            {
                if (chaches[n].uri == source && chaches[n].headers.GetContentLength() == headers.GetContentLength())
                {
                    return chaches[n].path;
                }
                n++;
            }
            return null;
            // your code goes here
        }
 
        private bool FileCanBeTakenFromCache(string fileName)
        {            
                return false;
            // your code goes here
        }
    }
далее вызываю
C#
1
2
3
       fileDownloader.DownloadProgressChanged += client_DownloadProgressChanged;
                    fileDownloader.DownloadFileCompleted += client_DownloadFileCompleted;
                    fileDownloader.DownloadFileAsync(new Uri(url + file_pack),file_pack);
сама запись в кеш происходит, но скачивание так и не начинается)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2016, 04:01

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

лаунчер
хочу создать программу для сетевого соединения игры. есть ли образцы таких программ? или...

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

Лаунчер с автообновлением
Здравствуйте!!! пожалуйста помогите мне сделать лаунчер, что мне нужно 1. При входе проверка...

Лаунчер PHP
Всем привет делаю лаунчер на php devel studio 3.0 хочу чтобы добавлялся в автозагрузку с windows...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.