标签: `代码` `C#` `WPF`
**遍历文件夹下任意类型的文件**
```cs
Loaded += delegate {
var arr = "*.png|*.jpg|*.jpeg|*.gif".Split('|').SelectMany(filter => new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)).GetFiles(filter, SearchOption.AllDirectories)).ToArray();
};
```
---
```cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;
namespace CFileWall
{
///
/// LoadingUserControl.xaml 的交互逻辑
///
public partial class LoadingUserControl : UserControl
{
public event EventHandler LoadingCompleted;
public LoadingUserControl()
{
InitializeComponent();
Loaded += new RoutedEventHandler(LoadingUserControl_Loaded);
}
void LoadingUserControl_Loaded(object sender, RoutedEventArgs e)
{
//启动新的线程加载文件
new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(delegate
{
int index = 1;
if (App.Files == null) return;
foreach (var file in App.Files)
{
this.Dispatcher.Invoke((Action)delegate
{
Console.WriteLine(index);
textBlock_LoadingTips.Text = index.ToString() + @"/" + App.Files.Length.ToString();
loadingProgress.Value = (double)index / App.Files.Length * 100;
}, null);
System.Threading.Thread.Sleep(100);
index++;
}
if (LoadingCompleted != null)
{
this.Dispatcher.BeginInvoke((Action)delegate
{
DispatcherTimer dt = new DispatcherTimer();
dt.Interval = TimeSpan.FromSeconds(1);
dt.Tick += delegate
{
dt.Stop();
LoadingCompleted(this, null);
};
dt.Start();
}, null);
}
})).Start();
}
}
}
```
有问题或建议请反馈到:
微博 :[@Changweihua](http://weibo.com/changweihua)
邮箱 :changweihua@outlook.com