3 votes

Actualiser automatiquement la liste des fichiers dans une application UWP lorsque des fichiers sont déplacés/ajoutés/renommmés.

Je travaille sur une application de lecteur de musique simple pour UWP et j'ai quelques questions. Tout d'abord, voici mon code

 private async void Page_Loaded(object sender, RoutedEventArgs e)
        {
            StorageFolder folder = KnownFolders.MusicLibrary;    
            await RetrieveFilesInFolders(folder);
        }

  private async Task RetrieveFilesInFolders(StorageFolder parent)
        {
            foreach (var file in await parent.GetFilesAsync())
            {
                if (file.FileType == ".mp3")
                {
                    var songProperties = await file.Properties.GetMusicPropertiesAsync();
                    var currentThumb = await file.GetThumbnailAsync(ThumbnailMode.MusicView, 200, ThumbnailOptions.UseCurrentScale);

                    var albumCover = new BitmapImage();
                    albumCover.SetSource(currentThumb);

                    var song = new Song();
                    song.Title = songProperties.Title;
                    song.Artist = songProperties.Artist;
                    song.Album = songProperties.Album;
                    song.AlbumCover = albumCover;
                    song.SongFile = file;
                    song.FileName = file.Name;

                    SongUC songUc = new SongUC(song);
                    sp1.Children.Add(songUc);
                }
            }

            foreach (var folder in await parent.GetFoldersAsync())
            {
                await RetrieveFilesInFolders(folder);
            }
        }

Constructeur de contrôle utilisateur

public SongUC(Song song)
        {
            this.InitializeComponent();
            txtTitle.Text = song.Title;
            txtAlbum.Text = song.Album;
            txtArtist.Text = song.Artist;
            txtName.Text = song.FileName;
            imgAlbumArt.Source = song.AlbumCover;
        }
  1. Comment puis-je rafraîchir automatiquement les fichiers retournés chaque fois qu'une nouvelle chanson est ajoutée, déplacée ou renommée
  2. Est-ce que déclencher la méthode RetrieveFilesInFolders dans le gestionnaire d'événements PageLoaded est le meilleur moyen d'obtenir toutes les chansons. Ou ralentira-t-il l'application s'il y a une énorme collection de musique dans le dossier musique
  3. Comment puis-je utiliser des animations chaque fois que les fichiers sont récupérés pour rendre les choses plus agréables

1voto

Marian Dolinský Points 2666

Comme indiqué ici, jetez un œil aux requêtes de fichiers et à leur événement ContentsChanged.

0voto

Palle Due Points 44

Utilisez un FileSystemWatcher :

https://msdn.microsoft.com/fr-fr/library/system.io.filesystemwatcher(v=vs.110).aspx

Cela vous permet de capturer des événements lorsque des fichiers sont déplacés, supprimés et renommés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X