zoukankan      html  css  js  c++  java
  • 【万里征程——Windows App开发】文件&数据——读取文件/文件夹名

    在上一节中我们学习了数据绑定,因为我个人对上一篇还是比较满意的,至少相对于前面的那些而言(我也知道前面写的太差了,后面还会继续修改的,博客也像软件一样嘛)。这一节开始我们将陆续看到Windows App是怎样操作文件的。

    在Windows上读取文件名、文件夹名

    首先我们在XAML中定义一个Button和TextBlock,将读取文件/文件夹名的过程写在前者的click事件中,后者则用来显示文件信息。

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">        
         <StackPanel Orientation="Horizontal">                
              <Button Name="btnGetName" Width="200" Height="100" Content="读取文件名" Click="btnGetName_Click"/>                
              <TextBlock Name="textBlockFileName" Width="500" Height="300" FontSize="30" Margin="12"/>              
         </StackPanel>         
    </Grid>

    以下这段代码,首先通过StorageFolder类读取图片库,然后使用异步的方式将图片库的文件和文件夹信息载入相应的List中。新建一个StringBuilder用以保存这些文件的信息,在这里只是使用了文件/文件夹的Name属性,但属性还有很多,比如Path属性。最后再将这些获取到的信息赋值给TextBlock即可。

            private async void btnGetName_Click(object sender, RoutedEventArgs e)
            {
                StorageFolder pictureFolder = KnownFolders.PicturesLibrary;
                IReadOnlyList<StorageFile> pictureFileList = await pictureFolder.GetFilesAsync();
                IReadOnlyList<StorageFolder> pictureFolderList = await pictureFolder.GetFoldersAsync();
    
                StringBuilder picutreFolderInfo = new StringBuilder();          
                foreach(StorageFile f in pictureFileList)
                {
                    picutreFolderInfo.Append(f.Name+"
    ");
                }
                foreach(StorageFolder f in pictureFolderList)
                {
                    picutreFolderInfo.Append(f.Name+"
    ");
                }
                textBlockFileName.Text = picutreFolderInfo.ToString();                
            }

    注意要在方法名前面加上async哦。还有要在清单文件中声明我们的应用要使用图片库哦,一会在Windows Phone中也一样。

    这里写图片描述

    在Windows Phone上读取文件名、文件夹名

    后台代码不用做任何修改,只需把XAML代码修改修改以适应屏幕即可~

    <Grid>
        <StackPanel Orientation="Vertical">
             <Button Name="btnGetName" Width="150" Height="70" HorizontalAlignment="Center"
                            Content="读取文件名" Click="btnGetName_Click"/>
             <TextBlock Name="textBlockFileName" Width="300" Height="300" FontSize="30" Margin="12" TextWrapping="Wrap"/>
        </StackPanel>           
    </Grid>

    读取文件名的其他方法

            private async void btnGetName_Click(object sender, RoutedEventArgs e)
            {
                StorageFolder picutureFolder = KnownFolders.PicturesLibrary;
                StringBuilder pictureFolderInfo = new StringBuilder();
                IReadOnlyList<IStorageItem> pictureFileItem = await picutureFolder.GetItemsAsync();              
                foreach(var i in pictureFileItem)
                {
                    if (i is StorageFolder)
                        pictureFolderInfo.Append(i.Name + "
    ");
                    else
                        pictureFolderInfo.Append(i.Name + "
    ");
                }    
                textBlockFileName.Text = pictureFolderInfo.ToString();
            }



    为使本文得到斧正和提问,转载请注明出处:
    http://blog.csdn.net/nomasp

    版权声明:本文为 NoMasp柯于旺 原创文章,如需转载请联系本人。

  • 相关阅读:
    编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
    Java基础——数据类型之间的转换
    Spring 事物机制总结
    Spring 3.0 注解注入详解
    Spring 注解 @Resource和@Autowired
    从jsp向servlet传送数据的两种方式
    文本输入框,只能显示内容而不能修改
    myeclipse 中项目名出现红色感叹号解决方法
    在servlet中使用split()截取以反斜杠‘’分割的字符串
    jsp页面跳转方式
  • 原文地址:https://www.cnblogs.com/NoMasp/p/4786021.html
Copyright © 2011-2022 走看看