Access HomeGroup Location in Windows Store Application

This article will demonstrate how you can access the files from the HomeGroup network location in Windows Store Application.

In this article we are going to learn how to access the HomeGroup location in a Windows Store Application using C#.

Introduction

HomeGroup is one of the known locations that can be suggested to the file picker as a starting location. The file picker will open at the last opened location and not always the suggested location. You can also picki a video from the homegroup, and stream it to a video tag in a Windows Store Application.

HomeGroup will only be available if the PC belongs to a homegroup. You can access the files and folders from the HomeGroup location.

Now, let's begin to create an Windows Store Application using C#.

Step 1

Select a Blank template of Windows Store Application using XAML.

Now to add some capabilities in the application to easily access the network location.

adding-capabilities-in-windows-store-apps.jpg

Add a Declaration of a FileOpenPicker Contract and select any file supported as the following image shows:

Declaration-In-Windows-Store-apps.jpg

Step 2

In this step I put some UI control in the MainPage.xaml file.

<Page

    x:Class="HomeGroup_Location.MainPage"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:local="using:HomeGroup_Location"

    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

    mc:Ignorable="d">

 

    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">

        <StackPanel Orientation="Vertical" Margin="0,10,0,0" Grid.Row="1">

            <Button x:Name="openPicker" Content="Open picker" Margin="0,0,10,0" Click="OpenPickerButton_Click"/>

 

            <StackPanel Orientation="Horizontal">

                <Button x:Name="videoPicker" Content="Pick video" Margin="0,0,10,0" Click="PickVideo_Click"/>

                <Grid x:Name="Output" >

                    <MediaElement x:Name="videoPlayer" AutomationProperties.Name="Video Placeholder" HorizontalAlignment="Left" VerticalAlignment="Top"/>

                </Grid>

            </StackPanel>

            <TextBlock x:Name="Status" FontSize="15"></TextBlock>

        </StackPanel>

    </Grid>

</Page>


Step 3

Pick a file from the HomeGroup Location.

Windows.Storage.Pickers.FileOpenPicker picker = new Windows.Storage.Pickers.FileOpenPicker();

picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;

picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.HomeGroup;

picker.FileTypeFilter.Add("*");

Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();

In the preceding code I set the Location of the Picker to the HomeGroup location. When the FileOpenPicker opens it displays the default location as HomeGroup.

Step 4

Code for picking a media file from the HomeGroup Network.

async private void PickVideo_Click(object sender, RoutedEventArgs e)

{          

   Windows.Storage.Pickers.FileOpenPicker picker = new Windows.Storage.Pickers.FileOpenPicker();

   picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;

   picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.HomeGroup;

   picker.FileTypeFilter.Add(".mp4");

   picker.FileTypeFilter.Add(".wmv");

   Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();

 

   if (file != null)

   {

      var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);

      videoPlayer.SetSource(stream, file.ContentType);

      videoPlayer.Stop();

      videoPlayer.Play();

   }               

}

Step 5

Now your application is ready to access the files from the HomeGroup Network location. Press F5 and run it.