字符串数组c#通用窗口中的文件名

字符串数组c#通用窗口中的文件名,c#,win-universal-app,windows-applications,universal,C#,Win Universal App,Windows Applications,Universal,我正在开发一个通用Windows平台应用程序。 要继续,我需要将一个文件夹中所有文件的文件名放入字符串数组。 get files方法在UWP中不起作用。我尝试过使用Filepicker和Storagefolder,但我不知道如何将其放入字符串数组 // C# FolderPicker picker= new FolderPicker(); picker.FileTypeFilter.Add("*"); StorageFolder x = await picker.PickSingleFolder

我正在开发一个通用Windows平台应用程序。 要继续,我需要将一个文件夹中所有文件的文件名放入字符串数组。 get files方法在UWP中不起作用。我尝试过使用Filepicker和Storagefolder,但我不知道如何将其放入字符串数组

// C#
FolderPicker picker= new FolderPicker();
picker.FileTypeFilter.Add("*"); StorageFolder x = await picker.PickSingleFolderAsync();

Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.AddOrReplace("PickedFolderToken", x);
string[] files = Directory.GetFiles(@"path\to\Assets");
textBlock.Text = files.Length.ToString();  

您可以使用
Directory.EnumerateFiles
System.IO.Path.GetFileName
和LINQ:

string[] allFileNames = Directory.EnumerateFiles(dirPath)
    .Select(System.IO.Path.GetFileName)
    .ToArray();

您可以使用
Directory.EnumerateFiles
System.IO.Path.GetFileName
和LINQ:

string[] allFileNames = Directory.EnumerateFiles(dirPath)
    .Select(System.IO.Path.GetFileName)
    .ToArray();

我无权访问此文件夹。我尝试了Directory.GetFiles(dirPath),当我检查长度时,它显示为0。这些Windows应用程序是沙盒

是的,你是对的,在UWP应用程序中,我们可以访问应用程序的本地文件夹或代码隐藏中的一些特殊库,如音乐库,否则我们需要使用文件夹/文件选择器让用户选择访问文件夹/文件

我尝试过使用Filepicker和Storagefolder,但我不知道如何将其放入字符串数组

// C#
FolderPicker picker= new FolderPicker();
picker.FileTypeFilter.Add("*"); StorageFolder x = await picker.PickSingleFolderAsync();

Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.AddOrReplace("PickedFolderToken", x);
string[] files = Directory.GetFiles(@"path\to\Assets");
textBlock.Text = files.Length.ToString();  
这是一个正确的方向,您可以使用以下方法完成此工作:

private string[] filename;
private async void Button_Click(object sender, RoutedEventArgs e)
{
    FolderPicker picker = new FolderPicker();
    picker.SuggestedStartLocation = PickerLocationId.ComputerFolder;
    picker.FileTypeFilter.Add("*"); //match all the file format

    StorageFolder folder = await picker.PickSingleFolderAsync();

    if (folder != null)
    {
        var subFiles = await folder.GetFilesAsync();
        filename = new string[subFiles.Count()];
        for (int i = 0; i < subFiles.Count(); i++)
        {
            filename[i] = subFiles.ElementAt(i).DisplayName;
            textBlock.Text = textBlock.Text + "+" + filename[i]; //show the file name in a textblock
        }
    }
}
私有字符串[]文件名;
专用异步无效按钮\u单击(对象发送方,路由目标)
{
FolderPicker-picker=新FolderPicker();
picker.SuggestedStartLocation=PickerLocationId.ComputerFolder;
picker.FileTypeFilter.Add(“*”;//匹配所有文件格式
StorageFolder folder=Wait picker.PickSingleFolderAsync();
如果(文件夹!=null)
{
var subFiles=await folder.getfileasync();
filename=新字符串[subFiles.Count()];
对于(int i=0;i
使用
picker.FileTypeFilter.Add(“*”)
可以使筛选器匹配文件夹中的所有文件类型,但这些文件不会显示在picker界面中


我无权访问此文件夹。我尝试了Directory.GetFiles(dirPath),当我检查长度时,它显示为0。这些Windows应用程序是沙盒

是的,你是对的,在UWP应用程序中,我们可以访问应用程序的本地文件夹或代码隐藏中的一些特殊库,如音乐库,否则我们需要使用文件夹/文件选择器让用户选择访问文件夹/文件

我尝试过使用Filepicker和Storagefolder,但我不知道如何将其放入字符串数组

// C#
FolderPicker picker= new FolderPicker();
picker.FileTypeFilter.Add("*"); StorageFolder x = await picker.PickSingleFolderAsync();

Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.AddOrReplace("PickedFolderToken", x);
string[] files = Directory.GetFiles(@"path\to\Assets");
textBlock.Text = files.Length.ToString();  
这是一个正确的方向,您可以使用以下方法完成此工作:

private string[] filename;
private async void Button_Click(object sender, RoutedEventArgs e)
{
    FolderPicker picker = new FolderPicker();
    picker.SuggestedStartLocation = PickerLocationId.ComputerFolder;
    picker.FileTypeFilter.Add("*"); //match all the file format

    StorageFolder folder = await picker.PickSingleFolderAsync();

    if (folder != null)
    {
        var subFiles = await folder.GetFilesAsync();
        filename = new string[subFiles.Count()];
        for (int i = 0; i < subFiles.Count(); i++)
        {
            filename[i] = subFiles.ElementAt(i).DisplayName;
            textBlock.Text = textBlock.Text + "+" + filename[i]; //show the file name in a textblock
        }
    }
}
私有字符串[]文件名;
专用异步无效按钮\u单击(对象发送方,路由目标)
{
FolderPicker-picker=新FolderPicker();
picker.SuggestedStartLocation=PickerLocationId.ComputerFolder;
picker.FileTypeFilter.Add(“*”;//匹配所有文件格式
StorageFolder folder=Wait picker.PickSingleFolderAsync();
如果(文件夹!=null)
{
var subFiles=await folder.getfileasync();
filename=新字符串[subFiles.Count()];
对于(int i=0;i

使用
picker.FileTypeFilter.Add(“*”)
可以使筛选器匹配文件夹中的所有文件类型,但这些文件不会显示在picker界面中。

在此处添加现有代码,这样我们就有了一些依据。在此处添加现有代码,这样我们就有了依据。我无权访问此文件夹。我尝试了Directory.GetFiles(dirPath),当我检查长度时,它显示为0。这些Windows应用是沙盒,我无法访问此文件夹。我尝试了Directory.GetFiles(dirPath),当我检查长度时,它显示为0。这些Windows应用程序是沙盒