例如,我有這個功能搜索文件:我怎樣才能得到一個文件名的一部分?
public void Search(string strExtension,
DirectoryInfo di,
List<FileSystemInfo> pResult)
{
try
{
foreach (FileInfo fi in di.GetFiles())
{
if (InvokeRequired)
{
BeginInvoke(new Action(() => label2.Text = fi.Name));
}
if (fi.Name == "MessageLog.xsl")
{
foreach (FileInfo fii in di.GetFiles())
{
if (fii.Extension == strExtension)
pResult.Add(fii);
}
if (InvokeRequired)
{
BeginInvoke(new Action(() => label4.Text = pResult.Count.ToString() + Environment.NewLine));
}
}
}
foreach (DirectoryInfo diChild in di.GetDirectories())
Search(strExtension, diChild, pResult);
}
catch (Exception e)
{
}
}
當使用這種小班化搜索是通過IM:
public class MyItem
{
public FileSystemInfo fsi { get; set; }
public override string ToString()
{
return this.fsi.Name;
}
}
而在BackgroundWorker的完成情況顯示文件名:
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
for (int i = 0; i < this.fsi.Count; i++)
{
this.listBox1.Items.Add(new MyItem() { fsi = fsi[i] });
}
}
在列表框的結果是例如這樣的:
danny125645.xml
yaron576567.xml
這是沒有目錄的文件名。
是否有解析文件名,所以它會沒有數字?例如:
danny.xml
yaron.xml
[如何從一個字符串中刪除數(http://stackoverflow.com/questions/1657282/how-to-remove-數字從字符串在正則表達式替換) –