Diskuze: Jak ukladat v Appdata

C# .NET .NET (C# a Visual Basic) Jak ukladat v Appdata American English version English version

Avatar
lukas
Člen
Avatar
lukas:

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ý:
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:

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
Зайчик:
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
Зайчик:

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
Зайчик:

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:

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:

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:

Dik

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

Okej dekuju vsem funguje to

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

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:

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ý:

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:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

Proč mě nikdo neposlouchá? :)

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

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.