Diskuze: Jak ukladat v Appdata
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 15 zpráv z 15.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
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;
}));
}
}
}
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))
//...
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);
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áš
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...
Pokud to ja napisu bez toho Path, tak mi to vrací cestu až za aktuální složkou - tzn. C:/..../projekt/bin/debug/C:/..../AppData
Já to tam nedávám schválně. Jen říkám, že mě to nefunguje bez toho Path....
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Proč mě nikdo neposlouchá?
Zobrazeno 15 zpráv z 15.