Cześć.
w prostej aplikacji UWP poniższa procedura z założenia w celu wydruku sobie raportu z przebiegu programu działa poprawnie...
private async void UtworzWpiszTekst()
{
/* na podst.: https://github.com/Microsoft/Windows-universal-samples/blob/master/Samples/FileAccess/README.md
//-1-
using Windows.Storage;
using System.Threading.Tasks;
//
//using System;
using System.Reflection;
using System.Text;
//
//-2-
StringBuilder sb = new StringBuilder();
int xxx = 0;
//
//-3-
sb.AppendLine("aaaaaaaaa");
/**/
//----------------------------------------------------------------------------------------------------------------------------------------------------
// 01- Utwórz plik w bibliotece Pictures - Wykorzystuje jedną z StorageFolder . CreateFileAsync metody do utworzenia pliku.
StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;// Get the app's local folder.
//
DateTime dateTime = DateTime.Now;// Create date/time to format and display.
string dt = dateTime.Year.ToString() + "-" + dateTime.Month.ToString() + "-" + dateTime.Day.ToString() + "-" + dateTime.Hour.ToString() + "-" + dateTime.Minute.ToString() + "-" + dateTime.Second.ToString();
//
string desiredName = "000- " + dt + ".txt";// Create a new file in the current folder. Raise an exception if the file already exists.
StorageFile newFile = await localFolder.CreateFileAsync(desiredName);
// 01- Utwórz plik w bibliotece Pictures - Wykorzystuje jedną z StorageFolder . CreateFileAsync metody do utworzenia pliku.
//----------------------------------------------------------------------------------------------------------------------------------------------------
//
//----------------------------------------------------------------------------------------------------------------------------------------------------
// 03- Pisanie i czytanie tekstu w pliku - Używa FileIO . WriteTextAsync i FileIO.ReadTextAsync metody zapisu i odczytu pliku. Aby uzyskać więcej informacji, zobacz Tworzenie, zapisu i odczytu pliku .
if (desiredName != null)
{
try
{
if (!String.IsNullOrEmpty(sb.ToString()))//userContent))
{
await FileIO.WriteTextAsync(newFile, sb.ToString());// userContent);
}
else
{
//rootPage.NotifyUser("The text box is empty, please write something and then click 'Write' again.", NotifyType.ErrorMessage);
}
}
catch (FileNotFoundException)
{
// rootPage.NotifyUserFileNotExist();
}
catch (Exception)
{
// I/O errors are reported as exceptions.
//rootPage.NotifyUser(String.Format("Error writing to '{0}': {1}", file.Name, ex.Message), NotifyType.ErrorMessage);
}
}
else
{
//rootPage.NotifyUserFileNotExist();
}
// 03- Pisanie i czytanie tekstu w pliku - Używa FileIO . WriteTextAsync i FileIO.ReadTextAsync metody zapisu i odczytu pliku. Aby uzyskać więcej informacji, zobacz Tworzenie, zapisu i odczytu pliku .
//----------------------------------------------------------------------------------------------------------------------------------------------------
//
//----------------------------------------------------------------------------------------------------------------------------------------------------
// 08- Skopiuj plik - Wykorzystuje jedną z StorageFile . CopyAsync metod, aby skopiować plik.
// StorageFolder picturesLibrary = await KnownFolders.GetFolderForUserAsync(null /* current user */, KnownFolderId.DocumentsLibrary);//.PicturesLibrary);
// await newFile.CopyAsync(picturesLibrary, desiredName + " - 002 - sample - Copy.txt", NameCollisionOption.ReplaceExisting);
// 08- Skopiuj plik - Wykorzystuje jedną z StorageFile . CopyAsync metod, aby skopiować plik.
//----------------------------------------------------------------------------------------------------------------------------------------------------
//
}
//
private void Button()
{
sb.AppendLine("-------------------------------------------------------");
//
for (int xxx = 0; xxx <= 10; xxx++)
{
sb.AppendLine("This is a sentence.: " + xxx.ToString());
}
xxx++;
}
//
jednakże wpięta do projektu UWP zawierającym Microsoft-Graph-UWP-Connect-SDK wystąpił problem
w miejscu oznaczonym jako 08:
//
//----------------------------------------------------------------------------------------------------------------------------------------------------
// 08- Skopiuj plik - Wykorzystuje jedną z StorageFile . CopyAsync metod, aby skopiować plik.
// StorageFolder picturesLibrary = await KnownFolders.GetFolderForUserAsync(null /* current user */, KnownFolderId.DocumentsLibrary);//.PicturesLibrary);
// await newFile.CopyAsync(picturesLibrary, desiredName + " - 002 - sample - Copy.txt", NameCollisionOption.ReplaceExisting);
// 08- Skopiuj plik - Wykorzystuje jedną z StorageFile . CopyAsync metod, aby skopiować plik.
//----------------------------------------------------------------------------------------------------------------------------------------------------
//
generalnie jest obejście przeze mnie problemu polegającym na niemożności utworzenia pliku raportu bezpośrednio we wskazanej, dowolnej lokalizacji np. na pulpicie
i plik utworzony w systemowej jakiej przestrzeni projektu jest kopiowany do foldera Dokumenty lub Obrazy...
jako proteza jedynie abym miał łatwiejszy dostęp do takiego pliku - raportu bez potrzeby szukania go w ukrytym folderze:
np.: C:\Users\vbhgh\AppData\Local\Packages\022b68d9-0752-4bc9-85eb-0b9129f5c5bb_nyfwse2vvz7nc\LocalState...
i mam pytanie czy istnieje metoda jakaś która by pod UWP pozwoliła mi bezpośrednio utworzyć plik raportu w dowolnie wskazanej lokalizacji, ponieważ nie mogę jakoś znaleźć...
serdeczne podziękowanie za jakąś wskazówkę
Szymek