Beispiel #1
0
        public async Task OpenFolderAsync(File file)
        {
            if (file == null || !file.Local.IsFileExisting())
            {
                return;
            }

            var cached = await _protoService.GetFileAsync(file);

            if (cached == null)
            {
                return;
            }

            try
            {
                var folder = await cached.GetParentAsync();

                var options = new FolderLauncherOptions();
                options.ItemsToSelect.Add(cached);

                await Launcher.LaunchFolderAsync(folder, options);
            }
            catch { }
        }
Beispiel #2
0
        private async void LaunchFolder_Click(object sender, RoutedEventArgs e)
        {
            var options = new FolderLauncherOptions();

            options.DesiredRemainingView = ViewSizePreference.UseHalf;
            await Launcher.LaunchFolderAsync(KnownFolders.PicturesLibrary, options);
        }
        public static async Task LaunchExplorerAtFolderAsync()
        {
            var result = await GetFolderSilentAsync();

            switch (result.GetResult)
            {
            case GetFolderResult.Reason.NoSuchFolder:
            {
                var dlg = new MessageDialog("the eBook Reader folder cannot be reached. Is the eBook connected?");
                await dlg.ShowAsync();
            }
            break;

            case GetFolderResult.Reason.NotSet:
            {
                var dlg = new MessageDialog("No eBook Reader folder has been saved. The Send To eBook Reader command will set this value.");
                await dlg.ShowAsync();
            }
            break;

            case GetFolderResult.Reason.Ok:
                var folder        = result.Folder;
                var launchOptions = new FolderLauncherOptions();
                launchOptions.DesiredRemainingView = Windows.UI.ViewManagement.ViewSizePreference.UseMore;
                await Launcher.LaunchFolderAsync(folder, launchOptions);

                break;
            }
        }
Beispiel #4
0
        public static async Task SavePhotoAsync(TLPhotoSize photoSize, int date, bool downloads)
        {
            var location = photoSize.Location;
            var fileName = string.Format("{0}_{1}_{2}.jpg", location.VolumeId, location.LocalId, location.Secret);

            if (File.Exists(FileUtils.GetTempFileName(fileName)))
            {
                var resultName = "photo_" + DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") + ".jpg";

                if (downloads)
                {
                    var folder = await GetDownloadsAsync();

                    if (folder == null)
                    {
                        return;
                    }

                    StorageFile file;
                    if (StorageApplicationPermissions.FutureAccessList.ContainsItem(fileName))
                    {
                        file = await StorageApplicationPermissions.FutureAccessList.GetFileAsync(fileName);
                    }
                    else
                    {
                        file = await folder.CreateFileAsync(resultName, CreationCollisionOption.GenerateUniqueName);

                        StorageApplicationPermissions.FutureAccessList.AddOrReplace(fileName, file);

                        var result = await FileUtils.GetTempFileAsync(fileName);

                        await result.CopyAndReplaceAsync(file);
                    }

                    if (UIViewSettings.GetForCurrentView().UserInteractionMode == UserInteractionMode.Mouse)
                    {
                        var options = new FolderLauncherOptions();
                        options.ItemsToSelect.Add(file);

                        await Launcher.LaunchFolderAsync(folder, options);
                    }
                }
                else
                {
                    var picker = new FileSavePicker();
                    picker.FileTypeChoices.Add("JPEG Image", new[] { ".jpg" });
                    picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
                    picker.SuggestedFileName      = resultName;

                    var file = await picker.PickSaveFileAsync();

                    if (file != null)
                    {
                        var result = await FileUtils.GetTempFileAsync(fileName);

                        await result.CopyAndReplaceAsync(file);
                    }
                }
            }
        }
        /// <summary>
        /// Opens the specified folder with the specified file highlighted/selected.
        /// </summary>
        /// <param name="folder">The folder to launch.</param>
        /// <param name="fileToSelect">The file to select in the launched folder.</param>
        /// <returns>A task that resolves when the operation is completed.</returns>
        public async Task LaunchFolderWithSelectionAsync(IStorageFolder folder, ITestableFile fileToSelect)
        {
            FolderLauncherOptions options = new FolderLauncherOptions();

            options.ItemsToSelect.Add(fileToSelect.AsIStorageItem);
            await Launcher.LaunchFolderAsync(folder, options);
        }
Beispiel #6
0
        public static async Task ExplorePath(StorageFolder folder, StorageFile Flie)
        {
            //System.Diagnostics.Process.Start(AppDomain.CurrentDomain.BaseDirectory);
            var t = new FolderLauncherOptions();

            t.ItemsToSelect.Add(Flie);
            await Launcher.LaunchFolderAsync(folder, t);
        }
Beispiel #7
0
        internal static async Task <bool> LaunchFolderAndSelectItems(IStorageFolder folder, IEnumerable <IStorageItem> selectedItems)
        {
            FolderLauncherOptions options = new FolderLauncherOptions();

            foreach (var item in selectedItems)
            {
                options.ItemsToSelect.Add(item);
            }
            return(await Launcher.LaunchFolderAsync(folder, options));
        }
        async Task <bool> PlatformLaunchFolder(IFolder folder, IEnumerable <Platform.Storage.IStorageItem> itemsToSelect)
        {
            var options = new FolderLauncherOptions();

            foreach (var item in itemsToSelect)
            {
                options.ItemsToSelect.Add(item.Context as Windows.Storage.IStorageItem);
            }
            return(await Launcher.LaunchFolderAsync(folder.Context as IStorageFolder, options));
        }
        private async void MenuFlyoutRevealExplorer_Click(object sender, RoutedEventArgs e)
        {
            if (SongFlyout.Target is SelectorItem s)
            {
                string path = null;
                switch (s.Content)
                {
                case GenericMusicItemViewModel g:
                    switch (g.InnerType)
                    {
                    case MediaType.Song:
                        if (g.IsOnline)
                        {
                            throw new InvalidOperationException("Can't open an online file");
                        }
                        path = (await g.GetSongsAsync())[0].FilePath;
                        break;

                    case MediaType.Album:
                        break;

                    case MediaType.PlayList:
                        break;

                    case MediaType.Artist:
                        break;

                    default:
                        break;
                    }
                    break;

                case SongViewModel song:
                    path = song.FilePath;
                    break;

                case AlbumViewModel album:
                    break;

                case ArtistViewModel artist:
                    break;

                default:
                    break;
                }
                if (!path.IsNullorEmpty())
                {
                    var file = await StorageFile.GetFileFromPathAsync(path);

                    var option = new FolderLauncherOptions();
                    option.ItemsToSelect.Add(file);
                    await Launcher.LaunchFolderAsync(await file.GetParentAsync(), option);
                }
            }
        }
Beispiel #10
0
        private async void ExportBoard_Tapped(object sender, TappedRoutedEventArgs e)
        {
            // Trigger loading screen while creating the document
            IsBusy = true;

            string fileName = $"{SelectedBoard.BoardName}.docx";

            StorageFolder localFolder = ApplicationData.Current.LocalFolder;
            string        filepath    = $"{localFolder.Path}/{fileName}";

            ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
            string authorname = (string)localSettings.Values["AuthorName"];

            // Only when prepare to write to file, update Hour in Board object
            SelectedBoard.Hours = DataAccess.GetAllHourInBoard(SelectedBoard.ID);

            var writer = new DataOutput(SelectedBoard, authorname, filepath);

            writer.WriteToFile();

            // End loading screen
            IsBusy = false;

            var folderPicker = new Windows.Storage.Pickers.FolderPicker
            {
                SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Desktop
            };

            folderPicker.FileTypeFilter.Add("*");

            StorageFolder folder = await folderPicker.PickSingleFolderAsync();

            if (folder != null)
            {
                // Application now has read/write access to all contents in the picked folder
                // (including other sub-folder contents)
                Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.AddOrReplace("PickedFolderToken", folder);

                StorageFile newFile = await localFolder.GetFileAsync(fileName);

                await newFile.MoveAsync(folder, fileName, NameCollisionOption.ReplaceExisting);

                // Add option to make the explorer select the newly created file
                var ItemToSelect = await folder.GetFileAsync(fileName);

                var option = new FolderLauncherOptions();
                option.ItemsToSelect.Add(ItemToSelect);

                // Open system file explorer to where the user has saved the word file
                await Launcher.LaunchFolderAsync(folder, option);
            }
        }
Beispiel #11
0
        internal async Task FindFileAsync()
        {
            if (Song.IsOnline)
            {
                throw new InvalidOperationException("Can't open an online file");
            }
            var file = await StorageFile.GetFileFromPathAsync(Song.Song.FilePath);

            var option = new FolderLauncherOptions();

            option.ItemsToSelect.Add(file);
            await Launcher.LaunchFolderAsync(await file.GetParentAsync(), option);
        }
Beispiel #12
0
        private async void OpenDirectoryButton(object sender, RoutedEventArgs e)
        {
            Button             btn   = (Button)sender;
            FileDiscoveryCache cache = btn.DataContext as FileDiscoveryCache;
            StorageFile        file  = await StorageFile.GetFileFromPathAsync(cache.FilePath);

            StorageFolder folder = await file.GetParentAsync();

            if (folder != null)
            {
                FolderLauncherOptions launchOptions = new FolderLauncherOptions();
                launchOptions.ItemsToSelect.Add(file);
                StorageTask.OpenFolderInExplorer(folder, launchOptions);
            }
        }
Beispiel #13
0
        public async Task ShowItemInExplorer(LibraryItem item)
        {
            if (item == null)
            {
                return;
            }

            StorageFolder folder = await GetStorageFolderForItem(item);

            IStorageItem storageItem = await folder.TryGetItemAsync(GetFileNameFromFullPath(item.FilePath));

            if (storageItem != null)
            {
                FolderLauncherOptions options = new FolderLauncherOptions();
                options.ItemsToSelect.Add(storageItem);
                await Launcher.LaunchFolderAsync(folder, options);
            }
        }
        private async void OnLaunchFolderSelectedItems(object sender, RoutedEventArgs e)
        {
            try
            {
                string      imageFile1  = @"\Assets\Share\espresso_450x450.jpg";
                string      imageFile2  = @"\Assets\Share\AlienFile.wechat";
                string      installPath = Package.Current.InstalledLocation.Path;
                StorageFile file1       = await StorageFile.GetFileFromPathAsync(installPath + imageFile1);

                StorageFile file2 = await StorageFile.GetFileFromPathAsync(installPath + imageFile2);

                StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(installPath + @"\Assets\Share");

                if (folder != null)
                {
                    FolderLauncherOptions options = new FolderLauncherOptions();
                    options.ItemsToSelect.Add(file1);
                    options.ItemsToSelect.Add(file2);
                    bool success = await Launcher.LaunchFolderAsync(folder, options);

                    if (success)
                    {
                        status.Log(string.Format(CultureInfo.CurrentCulture,
                                                 LocalizableStrings.LAUNCHERS_FOLDER_SELECTED_SUCCESS, installPath));
                    }
                    else
                    {
                        status.Log(string.Format(CultureInfo.CurrentCulture,
                                                 LocalizableStrings.LAUNCHERS_FOLDER_SELECTED_SUCCESS, installPath));
                    }
                }
                else
                {
                    status.Log(string.Format(CultureInfo.CurrentCulture,
                                             LocalizableStrings.LAUNCHERS_OPEN_FOLDER_FAIL, installPath));
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("LaunchersPage.OnLaunchFolderSelectedItems: " + ex.ToString());
                status.Log(ex.Message);
            }
        }
Beispiel #15
0
        async void OpenSongLocation(object file)
        {
            var mp3File = file as Mediafile;

            if (mp3File == null)
            {
                mp3File = Player.CurrentlyPlayingFile;
            }
            StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(System.IO.Path.GetDirectoryName(mp3File.Path));

            if (folder != null)
            {
                StorageFile storageFile = await StorageFile.GetFileFromPathAsync(mp3File.Path);

                var folderOptions = new FolderLauncherOptions();
                folderOptions.ItemsToSelect.Add(storageFile);
                await Launcher.LaunchFolderAsync(folder, folderOptions);
            }
        }
        public async Task OpenContainingFolder(bool checkForReference)
        {
            IStorageFolder folder;
            IStorageFile   fileToSelect;

            if (checkForReference && ReferenceFile.IsReferenceFile(File))
            {
                ReferenceFile referenceFile = await ReferenceFile.GetFile(File);

                if (referenceFile.ReferencedFile == null)
                {
                    folder = await StorageHelpers.ToStorageItem <StorageFolder>(Path.GetDirectoryName(File.Path));

                    fileToSelect = File;
                }
                else
                {
                    folder = await StorageHelpers.ToStorageItem <StorageFolder>(Path.GetDirectoryName(referenceFile.ReferencedFile.Path));

                    fileToSelect = referenceFile.ReferencedFile;
                }
            }
            else
            {
                folder = await StorageHelpers.ToStorageItem <StorageFolder>(Path.GetDirectoryName(File.Path));

                fileToSelect = File;
            }

            if (folder != null)
            {
                FolderLauncherOptions launcherOptions = new FolderLauncherOptions();

                if (File != null)
                {
                    launcherOptions.ItemsToSelect.Add(fileToSelect);
                }

                await Launcher.LaunchFolderAsync(folder, launcherOptions);
            }
        }
        /// <summary>
        /// Starts the file explorer by using the <seealso cref="fileProtocol"/>. If the <paramref name="protocol"/> contains only the
        /// directory it opens the file explorer with the provided directory. If <paramref name="protocol"/> points to a file, it opens
        /// the file explorer with the related directory and selects the given file.
        /// </summary>
        /// <param name="protocol">E.g. file:///C:\Users\user\Downloads or file:///C:\Users\user\Downloads\2020.11.23-46.26.jpg</param>
        /// <returns></returns>
        public async Task <bool> LaunchFileExplorerAsync(string protocol)
        {
            IStorageItem storageItem = await TryGetStorageItemFromProtocol(protocol);

            if (storageItem is IStorageFolder storageFolder)
            {
                return(await Launcher.LaunchFolderAsync(storageFolder, new FolderLauncherOptions()
                {
                }));
            }
            else if (storageItem is IStorageFile storageFile)
            {
                FolderLauncherOptions folderLauncherOptions = new FolderLauncherOptions();
                folderLauncherOptions.ItemsToSelect.Add(storageFile);

                var path          = System.IO.Path.GetDirectoryName(storageFile.Path);
                var storagefolder = await StorageFolder.GetFolderFromPathAsync(path);

                return(await Launcher.LaunchFolderAsync(storagefolder, folderLauncherOptions));
            }
            throw new NotImplementedException($"{nameof(TryGetStorageItemFromProtocol)} should return {nameof(IStorageFolder)} or {nameof(IStorageFile)}");
        }
Beispiel #18
0
        private async void btnOpenFloader_Click(object sender, RoutedEventArgs e)
        {
            //FolderPicker p = new FolderPicker();

            StorageFolder savePath;
            var           myMusic = await Windows.Storage.StorageLibrary.GetLibraryAsync(Windows.Storage.KnownLibraryId.Music);

            var root = myMusic.SaveFolder;
            var list = await root.GetFoldersAsync();

            if (list.Where(x => x.Name == FolderName).FirstOrDefault() != null)
            {
                savePath = await root.GetFolderAsync(FolderName);
            }
            else
            {
                savePath = await root.CreateFolderAsync(FolderName);
            }
            var t = new FolderLauncherOptions();
            await Launcher.LaunchFolderAsync(savePath, t);

            //await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync("lrts");
        }
Beispiel #19
0
        public static async Task SaveDocumentAsync(TLDocument document, int date, bool downloads)
        {
            var fileName = document.GetFileName();

            if (File.Exists(FileUtils.GetTempFileName(fileName)))
            {
                var extension  = document.GetFileExtension();
                var resultName = "document_" + DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") + extension;

                var fileNameAttribute = document.Attributes.OfType <TLDocumentAttributeFilename>().FirstOrDefault();
                if (fileNameAttribute != null)
                {
                    resultName = fileNameAttribute.FileName;
                }

                if (downloads)
                {
                    var folder = await GetDownloadsAsync();

                    if (folder == null)
                    {
                        return;
                    }

                    StorageFile file;
                    if (StorageApplicationPermissions.FutureAccessList.ContainsItem(fileName))
                    {
                        file = await StorageApplicationPermissions.FutureAccessList.GetFileAsync(fileName);
                    }
                    else
                    {
                        file = await folder.CreateFileAsync(resultName, CreationCollisionOption.GenerateUniqueName);

                        StorageApplicationPermissions.FutureAccessList.AddOrReplace(fileName, file);

                        var result = await FileUtils.GetTempFileAsync(fileName);

                        await result.CopyAndReplaceAsync(file);
                    }

                    if (UIViewSettings.GetForCurrentView().UserInteractionMode == UserInteractionMode.Mouse)
                    {
                        var options = new FolderLauncherOptions();
                        options.ItemsToSelect.Add(file);

                        await Launcher.LaunchFolderAsync(folder, options);
                    }
                }
                else
                {
                    var picker = new FileSavePicker();

                    if (!string.IsNullOrEmpty(extension))
                    {
                        picker.FileTypeChoices.Add($"{extension.TrimStart('.').ToUpper()} File", new[] { extension });
                    }
                    else
                    {
                        picker.FileTypeChoices.Add("Unknown", new[] { ".dat" });
                    }

                    picker.SuggestedStartLocation = PickerLocationId.Downloads;
                    picker.SuggestedFileName      = resultName;

                    var file = await picker.PickSaveFileAsync();

                    if (file != null)
                    {
                        var result = await FileUtils.GetTempFileAsync(fileName);

                        await result.CopyAndReplaceAsync(file);
                    }
                }
            }
        }
 private async void openFilePath_Click(object sender, RoutedEventArgs e)
 {
     var t = new FolderLauncherOptions();
     await Launcher.LaunchFolderAsync(folder, t);
 }
 public static async void OpenFolderInExplorer(StorageFolder folder, FolderLauncherOptions options)
 {
     await Launcher.LaunchFolderAsync(folder, options);
 }
Beispiel #22
0
		private async void LaunchFolder_Click(object sender, RoutedEventArgs e)
		{
			var options = new FolderLauncherOptions();
			options.DesiredRemainingView = ViewSizePreference.UseHalf;
			await Launcher.LaunchFolderAsync(KnownFolders.PicturesLibrary, options);
		}
        private async Task <bool> ExportToMusicFormat(StorageFile fileTarget, SpeechSynthesisStream synthStream)
        {
            bool success = false;

            Debug.WriteLine(fileTarget.FileType + " selected");

            // Set encoding profiles
            _profile = null;
            AudioEncodingQuality audioEncodingProfile = AudioEncodingQuality.High;

            if (fileTarget.FileType == ".wma")
            {
                _profile = MediaEncodingProfile.CreateWma(audioEncodingProfile);
            }
            else if (fileTarget.FileType == ".mp3")
            {
                _profile = MediaEncodingProfile.CreateMp3(audioEncodingProfile);
            }
            else if (fileTarget.FileType == ".m4a")
            {
                _profile = MediaEncodingProfile.CreateM4a(audioEncodingProfile);
            }
            else
            {
                Debug.WriteLine("Can't select a media encoding profile");
                return(success);
            }

            // Write temporary Wav to Temp-storage
            ApplicationData appData = ApplicationData.Current;
            StorageFile     source  = await appData.TemporaryFolder.CreateFileAsync("temporary.wav", CreationCollisionOption.ReplaceExisting);

            try
            {
                using (var reader = new DataReader(synthStream))
                {
                    await reader.LoadAsync((uint)synthStream.Size);

                    IBuffer buffer = reader.ReadBuffer((uint)synthStream.Size);
                    await FileIO.WriteBufferAsync(source, buffer);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Couldn't prepare wav for transcoding");
                Debug.WriteLine(ex);
            }


            // Prepare transcoding files
            var preparedTranscoderResult = await _transcoder.PrepareFileTranscodeAsync(source, fileTarget, _profile);

            if (preparedTranscoderResult.CanTranscode)
            {
                // Set task for transcoding
                await preparedTranscoderResult.TranscodeAsync().AsTask(_cts.Token);

                // Set Music-properties
                MusicProperties fileProperties = await fileTarget.Properties.GetMusicPropertiesAsync();

                fileProperties.Title  = fileTarget.DisplayName;
                fileProperties.Artist = "Talkinator";
                await fileProperties.SavePropertiesAsync();

                // Prepare notification
                // Add the file to app MRU and possibly system MRU
                //RecentStorageItemVisibility visibility = SystemMRUCheckBox.IsChecked.Value ? RecentStorageItemVisibility.AppAndSystem : RecentStorageItemVisibility.AppOnly;
                //rootPage.mruToken = StorageApplicationPermissions.MostRecentlyUsedList.Add(file, file.Name, visibility);

                //RecentStorageItemVisibility visibility = RecentStorageItemVisibility.AppOnly;
                //StorageApplicationPermissions.FutureAccessList.Add(fileTarget, fileTarget.DisplayName);



                StorageFolder parentFolder = await fileTarget.GetParentAsync();

                FolderLauncherOptions launcherOptions = new FolderLauncherOptions();
                launcherOptions.ItemsToSelect.Add(fileTarget);
                await Launcher.LaunchFolderAsync(parentFolder, launcherOptions);



                // Report completed
                success = true;
                Debug.WriteLine(fileTarget.FileType + " export completed");
            }
            else
            {
                Debug.WriteLine(preparedTranscoderResult.FailureReason);
            }

            return(success);
        }