Wow, est-ce plus compliqué que nécessaire. Quelqu'un peut-il me expliquer pourquoi le code suivant fonctionne:FileIO avec Windows Rt et C#
string stringToWrite = "SomeStuff";
Windows.ApplicationModel.Package package = Windows.ApplicationModel.Package.Current;
Windows.Storage.StorageFolder installedLocation = package.InstalledLocation;
var files = await installedLocation.GetFilesAsync();
foreach (Windows.Storage.StorageFile sf in files)
{
if (sf.Name.Equals("log.txt"))
{
await FileIO.AppendTextAsync(sf, stringToWrite);
}
}
Et pourtant ce qui suit échoue avec AccessDenied:
Windows.ApplicationModel.Package package = Windows.ApplicationModel.Package.Current;
Windows.Storage.StorageFolder installedLocation = package.InstalledLocation;
var log = await installedLocation.GetFileAsync("log.txt");
await FileIO.AppendTextAsync(log, stringToWrite);
La seule différence est Boucler dans les fichiers renvoyés par la méthode GetFilesAsync vs obtenir le fichier de nom. A propos, obtenir le nom par nom du fichier fonctionne parce que si j'obtiens une faute d'orthographe log.txt dans GetFileAsync, j'obtiens une exception.
Très confus ....
cette ligne est la différence dans vos deux exemples 'fichiers var = attendent installedLocation.GetFilesAsync();' la méthode selon MSDN 'Obtient les fichiers de haut niveau dans le dossier en cours ' – MethodMan
Je sais, on obtient un seul storageFile et l'autre renvoie une collection que je boucle ensuite à travers le get le fichier unique. L'accès au fichier doit être le même en ce qui concerne la lecture/écriture, non? – mrasmussen
Parlez-vous de Windows Runtime ou parlez-vous du système d'exploitation appelé Windows RT? – Charles