讀取文件和文件夾名

2018-08-12 21:55 更新

讀取文件和文件夾名

這一節(jié)開始我們將陸續(xù)看到 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 類讀取圖片庫,然后使用異步的方式將圖片庫的文件和文件夾信息載入相應(yīng)的 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+"\n");
            }
            foreach(StorageFolder f in pictureFolderList)
            {
                picutreFolderInfo.Append(f.Name+"\n");
            }
            textBlockFileName.Text = picutreFolderInfo.ToString();                
        }

注意要在方法名前面加上 async 哦。還有要在清單文件中聲明我們的應(yīng)用要使用圖片庫哦,一會在 Windows Phone 中也一樣。

在 Windows Phone 上讀取文件名、文件夾名

后臺代碼不用做任何修改,只需把 XAML 代碼修改修改以適應(yīng)屏幕即可。

<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 + "\n");
                else
                    pictureFolderInfo.Append(i.Name + "\n");
            }    
            textBlockFileName.Text = pictureFolderInfo.ToString();
        }
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號