Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
lukas
Člen
Avatar
lukas:2.1.2013 22:19

Jedna se o C# jazyk

Dobry den chtel bych si udelat Uppdator ktery by si lidi stahli a nahralo jim to napr.snapshot minecraftu do appdat ale nevim jak to mam udelat

Kdyz stahnul soubor z netu viz kod

Client client2 = new WebClient();
            client2.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client2_DownloadProgressChanged);
            client2.DownloadFileCompleted += new AsyncCompletedEventHandler(client2_DownloadFileCompleted);
            client2.DownloadFileAsync(new Uri("Zde dam odkud se to bude stahovat"), @"ale co zde abych ukaldal do appdata");

Editováno 2.1.2013 22:20
 
Odpovědět 2.1.2013 22:19
Avatar
Michael Olšavský:2.1.2013 22:29
Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
Editováno 2.1.2013 22:30
 
Nahoru Odpovědět 2.1.2013 22:29
Avatar
lukas
Člen
Avatar
lukas:2.1.2013 23:03

a to mam dat kam
toto je muj celej zdrojak

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.IO;

namespace WindowsFormsApplication7
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            WebClient client = new WebClient();
            client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
            client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
            client.DownloadFileAsync(new Uri("http://assets.minecraft.net/1_4_7/minecraft.jar"), @"Zde se ma ukladat do appdat ale jak ??");
        }
        void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
        {
            MessageBox.Show("Hotovo nahrano");
            progressBar1.Value = 0;
        }
        void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
        {
            string sFormatted = string.Format("{0} of {1}", e.BytesReceived, e.TotalBytesToReceive);

            Invoke(new MethodInvoker(delegate
            {
                progressBar1.Value = e.ProgressPercentage;
            }));
        }
    }
}
Editováno 2.1.2013 23:04
 
Nahoru Odpovědět 2.1.2013 23:03
Avatar
Зайчик
Člen
Avatar
Odpovídá na lukas
Зайчик:3.1.2013 3:00
string MojeCestaDoAppData = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "MOJESLOZKA");

no a pak budeš ukládat pomocí tohodle stringu ^^ například

//...
using System.IO;
class mujprogra
{
      public void UlozSoubor(string soubor,string obsah)
      {
            using(StreamWriter sw = new StreamWriter(soubor))
            {
                 sw.Write(obsah);
                 sw.Flush(); // vyprazdni buffer
            }
      }
}
// no a pak už jen voláš funkci
UlozSoubor(MojeCestaDoAppData + "\\Data", "ahoj");

nebo zjednodušeně...

string MojeCestaDoAppData = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "MOJESLOZKA");

A tady pak něco ukládáš

using(StreamWriter sw = new StreamWriter(MojeCestaDoAppData))
//...
Editováno 3.1.2013 3:01
Nahoru Odpovědět 3.1.2013 3:00
Коммунизм для нашего будущего!
Avatar
Зайчик
Člen
Avatar
Odpovídá na lukas
Зайчик:3.1.2013 3:03

V tvém případě by to mohlo být nějak takhle

//..
client.DownloadFileAsync(new Uri("http://assets.minecraft.net/1_4_7/minecraft.jar"), MojeCestaDoAppData);
Nahoru Odpovědět 3.1.2013 3:03
Коммунизм для нашего будущего!
Avatar
Зайчик
Člen
Avatar
Зайчик:3.1.2013 3:06

srry za spam ale mám tam chybu a už to nejde editovat ... má tam v prvním příkladu být cesta k souboru a ne do složky...

UlozSoubor(MojeCestaDoAppData + "\\Data\\MUJSOUBOR.txt", "ahoj");

Tak by to mělo být už správně.

Tomáš

Nahoru Odpovědět 3.1.2013 3:06
Коммунизм для нашего будущего!
Avatar
Lukas
Neregistrovaný
Avatar
Lukas:3.1.2013 12:56

Ano ale neni jak to mam vlozit do toho meho scriptu aby mi to fungovalo ze kdyz to zacn stahovat tak rovnou ukladat do appdata

 
Nahoru Odpovědět 3.1.2013 12:56
Avatar
matesax
Redaktor
Avatar
matesax:3.1.2013 13:37

Co to máte s tím Path? Používá se toto:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

Tedy:

WebClient name = new WebClient();
name.DownloadProgressChanged += new DownloadProgressChangedEventHandler(name_DownloadProgressChanged);
name.DownloadFileCompleted += new AsyncCompletedEventHandler(name_DownloadFileCompleted);
name.DownloadFileAsync(new Uri("source"), Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\target.extension");

Místo name zvol vhodný název - žádné xxx2...

 
Nahoru Odpovědět 3.1.2013 13:37
Avatar
lukas
Člen
Avatar
lukas:3.1.2013 14:36

Dik

 
Nahoru Odpovědět 3.1.2013 14:36
Avatar
lukas
Člen
Avatar
lukas:3.1.2013 14:39

Okej dekuju vsem funguje to

 
Nahoru Odpovědět 3.1.2013 14:39
Avatar
Odpovídá na matesax
Michael Olšavský:3.1.2013 16:16

Pokud to ja napisu bez toho Path, tak mi to vrací cestu až za aktuální složkou - tzn. C:/..../projek­t/bin/debug/C:/­..../AppData

 
Nahoru Odpovědět 3.1.2013 16:16
Avatar
Kit
Redaktor
Avatar
Odpovídá na Michael Olšavský
Kit:3.1.2013 16:27

A proč tam dáváš jméno aktuálního adresáře?

Nahoru Odpovědět 3.1.2013 16:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Michael Olšavský:3.1.2013 16:31

Já to tam nedávám schválně. Jen říkám, že mě to nefunguje bez toho Path....

 
Nahoru Odpovědět 3.1.2013 16:31
Avatar
matesax
Redaktor
Avatar
Odpovídá na Michael Olšavský
matesax:3.1.2013 21:37
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

Proč mě nikdo neposlouchá? :)

 
Nahoru Odpovědět 3.1.2013 21:37
Avatar
Lukas
Neregistrovaný
Avatar
Lukas:4.1.2013 11:27

To je jedno mne to jde a dekuju za prispevky

 
Nahoru Odpovědět 4.1.2013 11:27
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 15 zpráv z 15.