Witam serdecznie. Piszę aplikację Metro. Natrafiłem na mały problem i proszę was o pomoc. Stworzyłem taką oto klasę:
class Plik
{
public string SciezkaPlikuUsuwania;
public string SciezkaPlikuZapisu;
public string SciezkaPlikuOdczytu;
public string OdczytPliku;
public string ZapisPliku;
public Plik(string Spu, string Spz, string Spo, string Op, string Zp)
{
SciezkaPlikuUsuwania = Spu;
SciezkaPlikuZapisu = Spz;
SciezkaPlikuOdczytu = Spo;
OdczytPliku = Op;
ZapisPliku = Zp;
}
public async void Usun(string sciezkaPlikuUsuwania)
{
SciezkaPlikuUsuwania = sciezkaPlikuUsuwania;
StorageFolder local = ApplicationData.Current.LocalFolder;
var _File1 = await local.GetFileAsync(SciezkaPlikuUsuwania);
await _File1.DeleteAsync(StorageDeleteOption.PermanentDelete);
}
public async void Wczytaj(string sciezkaPlikuOdczytu)
{
SciezkaPlikuOdczytu = sciezkaPlikuOdczytu;
StorageFolder local = ApplicationData.Current.LocalFolder;
bool fileExists1;
try // Sprawdzanie czy pliki istnieją:
{
StorageFile _File1Check = local.GetFileAsync(SciezkaPlikuOdczytu).AsTask().ConfigureAwait(false).GetAwaiter().GetResult();
fileExists1 = _File1Check != null;
}
catch
{
fileExists1 = false;
}
if (fileExists1 == false) //Jeżeli nie istnieje tworzymy plik
{
byte[] fileBytes1 = System.Text.Encoding.UTF8.GetBytes("Empty".ToCharArray());
var file1 = await local.CreateFileAsync(SciezkaPlikuOdczytu,
CreationCollisionOption.ReplaceExisting);
using (var s = await file1.OpenStreamForWriteAsync())
{
s.Write(fileBytes1, 0, fileBytes1.Length);
}
}
else //Jeżeli istnieje odczytujemy
{
var _File1 = await local.OpenStreamForReadAsync(SciezkaPlikuOdczytu);
using (StreamReader streamReader1 = new StreamReader(_File1))
{
OdczytPliku = streamReader1.ReadToEnd();
OdczytPliku.ToString();
}
}
}
public async void Zapisz(string sciezkaPlikuZapisu)
{
StorageFolder local = ApplicationData.Current.LocalFolder;
SciezkaPlikuZapisu = sciezkaPlikuZapisu;
byte[] fileBytes = Encoding.UTF8.GetBytes(ZapisPliku.ToCharArray());
var file = await local.CreateFileAsync(SciezkaPlikuZapisu,
CreationCollisionOption.ReplaceExisting);
using (var s = await file.OpenStreamForWriteAsync())
{
s.Write(fileBytes, 0, fileBytes.Length);
}
}
}
}
No i prawie to wszystko działa ;) Mam problem tylko z odczytywaniem.
else //Jeżeli istnieje odczytujemy
{
var _File1 = await local.OpenStreamForReadAsync(SciezkaPlikuOdczytu);
using (StreamReader streamReader1 = new StreamReader(_File1))
{
OdczytPliku = streamReader1.ReadToEnd();
OdczytPliku.ToString();
}
}
A konkretnie ze zmienną OdczytPliku. Chciałbym muc przekazać dane z tejże zmiennej do zmiennej w MainPage lub się do niej odwołać.
Prosiłbym was o pomoc bo znając życie sprawa jest błaha a męczę się już z tym jakiś czas:(