Ejemplo n.º 1
0
 async void ContentFolderPicker_StorageFolderChanged(System.Object sender, P42.SandboxedStorage.StorageFolderChangedEventArgs e)
 {
     if (e.StorageFolder != null)
     {
         //Xamarin.Essentials.Preferences.Set(contentFolderPathKey, e.StorageFolder.Path);
         Preferences.Set(contentFolderPathKey, e.StorageFolder.Path);
         await DisplayFolderContents(e.StorageFolder);
     }
     else
     {
         //Xamarin.Essentials.Preferences.Clear(contentFolderPathKey);
         Preferences.Clear(contentFolderPathKey);
     }
 }
Ejemplo n.º 2
0
        async void FolderPicker_StorageFolderChanged(System.Object sender, P42.SandboxedStorage.StorageFolderChangedEventArgs e)
        {
            ShowSpinner();
            if (e.StorageFolder != null)
            {
                await DisplayFolderContents(e.StorageFolder);

                if (await e.StorageFolder.GetFilesAsync("*.txt") is IReadOnlyList <IStorageFile> files && files.Count > 0)
                {
                    await DisplaySomeTextFileContents(files[0]);
                }
                else
                {
                    await DisplayAlert(null, "No text file found in folder [" + e.StorageFolder.Path + "]", "ok");
                }

                var results = "";
                var test    = "e.StorageFolder.GetOrCreateFolderAsync(\"testFiles\")";
                if (await e.StorageFolder.GetOrCreateFolderAsync("testFiles") is IStorageFolder testFilesFolder)
                {
                    results += test + ": OK\n";
                    test     = "testFilesFolder.GetOrCreateFileAsync(textFileName1)";
                    if (await testFilesFolder.GetOrCreateFileAsync(textFileName1) is IStorageFile textFile)
                    {
                        results += test + ": OK\n";
                        await textFile.WriteAllTextAsync(testText);

                        results += "textFile.WriteAllTextAsync(testText): OK";
                        test     = "textFile.ReadAllTextAsync()";
                        if (await textFile.ReadAllTextAsync() is string contentText)
                        {
                            results += test + ": OK\n";
                            test     = "contentText == testText";
                            if (contentText == testText)
                            {
                                results += test + ": OK\n";
                                await textFile.AppendAllTextAsync(appendedText);

                                results += "textFile.AppendAllTextAsync(appendedText): OK";
                                test     = "textFile.ReadAllTextAsync()";
                                if (await textFile.ReadAllTextAsync() is string contentText1)
                                {
                                    results += test + ": OK\n";
                                    test     = "contentText1 == testText";
                                    if (contentText1 == testText + appendedText)
                                    {
                                        results += test + ": OK\n";
                                        test     = "textFile.RenameAsync(textFileName2)";
                                        await textFile.RenameAsync(textFileName2);

                                        results += test + ": OK\n";
                                        if (textFile.Name == textFileName2)
                                        {
                                            results += test + ": OK\n";
                                            test     = "textFile.ReadAllTextAsync()";
                                            if (await textFile.ReadAllTextAsync() is string contentText2)
                                            {
                                                results += test + ": OK\n";
                                                test     = "contentText2 == testText";
                                                if (contentText2 == testText + appendedText)
                                                {
                                                    results += test + ": OK\n";
                                                    test     = "textFile.MoveAsync(e.StorageFolder)";
                                                    await textFile.MoveAsync(e.StorageFolder);

                                                    results += test + ": OK\n";
                                                    test    += "textFile.GetParentAsync()";
                                                    if (await textFile.GetParentAsync() is IStorageFolder parentFolder)
                                                    {
                                                        results += test + ": OK\n";
                                                        test     = "parentFolder.Path == e.StorageFolder.Path";
                                                        if (parentFolder.Path == e.StorageFolder.Path)
                                                        {
                                                            results += test + ": OK\n";
                                                            test     = "parentFolder.IsEqual(e.StorageFolder)";
                                                            if (parentFolder.IsEqual(e.StorageFolder))
                                                            {
                                                                results += test + ": OK\n";
                                                                test     = "StorageFolderExtensions.FileExists(e.StorageFolder,textFileName2)";
                                                                if (await e.StorageFolder.FileExists(textFileName2))
                                                                {
                                                                    results += test + ": OK\n";
                                                                    test    += "!await StorageFolderExtensions.FileExists(testFilesFolder, textFileName2)";
                                                                    if (!await testFilesFolder.FileExists(textFileName2))
                                                                    {
                                                                        results += test + ": OK\n";
                                                                        //TODO: Add test to try to delete a folder that still contains files.  Need to see what happens with UWP!
                                                                        test += "await testFilesFolder.DeleteAsync();";
                                                                        await testFilesFolder.DeleteAsync();

                                                                        results += test + ": OK\n";
                                                                        test    += "!await StorageFolderExtensions.FolderExists(e.StorageFolder, testFilesFolder.Name)";
                                                                        if (!await e.StorageFolder.FolderExists(testFilesFolder.Name))
                                                                        {
                                                                            results += test + ": OK\n";
                                                                            test     = "textFile.DeleteAsync()";
                                                                            await textFile.DeleteAsync();

                                                                            results += test + ": OK\n";
                                                                            test     = "!await StorageFolderExtensions.FileExists(e.StorageFolder, textFileName2)";
                                                                            if (!await e.StorageFolder.FileExists(textFileName2))
                                                                            {
                                                                                results += test + ": OK\n";
                                                                                await DisplayAlert("Success", results, "OK");

                                                                                HideSpinner();
                                                                                return;
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                await DisplayError(test + ": FAIL");
            }
            HideSpinner();
        }