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.