Directory.EnumerateFiles的使用
来源:互联网 发布:网络电视回看吧 编辑:程序博客网 时间:2024/06/03 17:39
Directory.EnumerateFiles的使用
2010年11月14日 云飞扬
-
?[Copy to clipboard]View Code CSHARPusing System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
class Program
{
static void Main(string[] args)
{
try
{
// LINQ query for all files containing the word 'Europe'.
var files = from file in
Directory.EnumerateFiles(@"//archives1/library/")
where file.ToLower().Contains("europe")
select file;
// Show results.
foreach (var file in files)
{
Console.WriteLine("{0}", file);
}
Console.WriteLine("{0} files found.",
files.Count<string>().ToString());
}
catch (UnauthorizedAccessException UAEx)
{
Console.WriteLine(UAEx.Message);
}
catch (PathTooLongException PathEx)
{
Console.WriteLine(PathEx.Message);
}
}
}
Phil Haack has an interesting post about this topic, where he presents the following solution:
public static bool IsNullOrEmpty<T>(this IEnumerable<T> items) {
return items == null || !items.Any();
}This solution, unfortunately, suffers from a common problem related to handling IEnumerables. The assumption that you can iterate over enumerable more than once. This hold true for things like collections, but in many cases, this sort of code will silently hide data:
var files = Directory.EnumerateFiles(".","*.cs");
if(files.IsNullOrEmpty())
{
Cosnole.WriteLine("No files");
}
else
{
foreach(var file in files)
{
Console.WriteLine(file);
}
}The first file will never appear here.
A better solution is:
public static bool IsNullOrEmpty<T>(this IEnumerable<T> items, out IEnumerable<T> newItems)
{
newItems = items;
if(items == null)
return false;
var enumerator = items.GetEnumerator();
if(enumerator.MoveNext() == false)
return false;
newItems = new[]{enumerator.Current}.Concat(enumerator);
return true;
}That will not lose data.
原创文章转载请注明出处:云飞扬IT的blog
本文来自: 本站内容欢迎转载,但是禁止去掉本文链接(转载无妨,去掉链接可耻!):http://www.ajaxcn.net/archives/1519
- Directory.EnumerateFiles的使用
- 使用LDAP Directory的好处
- oracle中directory的使用
- 刚使用Active Directory的常见问题
- 刚使用Active Directory的常见问题(2)
- Directory.GetFiles 方法 中使用的误区
- System.IO.Directory.Delete 方法的使用
- 使用Active Directory
- 如何使用Directory,当Tkey是类的时候
- openfire使用Active Directory时用户名大小写的问题
- System.IO命名空间中Directory类的使用
- xendesktop 使用Active Directory来检测构成站点的控制器
- HM使用之2 Working Directory的解释
- c# File、FileInfo、Directory、DirectoryInfo、FileStream、StreamWriter、StreamReader的使用
- linux的directory
- Directory的简单用法!
- VS2010的Working Directory
- Xcode的working directory
- C# 3.0新特性之自动属性(Auto-Implemented Properties)
- 修改Sybase数据库最大连接数
- 连接未关闭。连接的当前状态为已打开
- ASP.NET MVC – Create easy REST API with JSON and XML(转)
- Build distcc from source code
- Directory.EnumerateFiles的使用
- 基于MDC的P2P方式视频直播方案
- 虚拟光驱软件 daemon tools lite 4.4 下载 2011最新版
- QT 4.7 DBUS Binding如何支持自定义数据类型的传输(一)
- 监视哨
- window.open 打开窗口 最大化 close() 强制 关闭窗口
- 【zz】FFMpeg SDK 开发手册
- 高性能的Ajax应用-Julien Lecomte
- 谁有 Android入门实例教程啊。。