/// <summary>
/// <C>得到指定目录下匹配的文件</C>
/// </summary>
/// <param name="Files">找到后文件存放在这里</param>
/// <param name="path">指定的目录</param>
/// <param name="pattern">文件名样式</param>
public static void GetFiles(ref System.Collections.ArrayList Files,string path,string pattern)
{
if(!System.IO.Directory.Exists(path))return;
string[] files = System.IO.Directory.GetFiles(path,pattern);
for(int i=0;i<files.Length ;i++)
Files.Add(files[i]);
files = System.IO.Directory.GetDirectories(path);
for(int i=0;i<files.Length ;i++)
GetFiles(ref Files,files[i],pattern);
}
/// <C>得到指定目录下匹配的文件</C>
/// </summary>
/// <param name="Files">找到后文件存放在这里</param>
/// <param name="path">指定的目录</param>
/// <param name="pattern">文件名样式</param>
public static void GetFiles(ref System.Collections.ArrayList Files,string path,string pattern)
{
if(!System.IO.Directory.Exists(path))return;
string[] files = System.IO.Directory.GetFiles(path,pattern);
for(int i=0;i<files.Length ;i++)
Files.Add(files[i]);
files = System.IO.Directory.GetDirectories(path);
for(int i=0;i<files.Length ;i++)
GetFiles(ref Files,files[i],pattern);
}
解决方案 »
- BSON文档与字符文档之间转换,C#貌似没有现成的工具,是否需要自己写字符处理函数?
- Form皮肤问题??????
- 在一个类的设计中,把一个需要的东西 设置成类的方法 还是 设置成类的属性好?
- crystalreport载入图片的问题
- 何为受控资源
- 我如何实现这样的页面?
- 功能齐全的免费使用的DataGrid组件(增加打印,显示行号,自动列宽,ComboBox,Command等样式列,红字显示等多种功能)
- 问大家一个关于注册表的问题
- 怎么实现类似vs的工具栏一样让工具栏一直靠左排列
- .NET框架中还用三层结构么?如果用ADO。NET访问数据库 中间建像上层传送那种数据?
- 请问用outLook收发雅虎邮件,设置时POP3地址是什么
- 请教 winForm的DataGrid绑定DataTable,如何让DataGrid可以编辑行,但不能增加行
这个下面我贴的有个c#资源管理器的例子,你参考一下,或许有帮助
/// 将指定目录下的子目录和文件生成xml文档
/// </summary>
/// <param name="targetDir">根目录</param>
/// <returns>返回XmlDocument对象</returns>
public static XmlDocument CreateXml(string targetDir)
{
XmlDocument myDocument = new XmlDocument();
XmlDeclaration declaration = myDocument.CreateXmlDeclaration("1.0","utf-8",null);
myDocument.AppendChild(declaration);
XmlElement rootElement = myDocument.CreateElement(targetDir.Substring(targetDir.LastIndexOf("\\")+1));
myDocument.AppendChild(rootElement);
foreach(string fileName in Directory.GetFiles(targetDir))
{
XmlElement childElement = myDocument.CreateElement("File");
childElement.InnerText = fileName.Substring(fileName.LastIndexOf("\\")+1);
rootElement.AppendChild(childElement);
}
foreach(string directory in Directory.GetDirectories(targetDir))
{
XmlElement childElement = myDocument.CreateElement("Directory");
childElement.SetAttribute("Name",directory.Substring(directory.LastIndexOf("\\")+1));
rootElement.AppendChild(childElement);
CreateBranch(directory,childElement,myDocument);
}
return myDocument;
}
/// <summary>
/// 生成Xml分支
/// </summary>
/// <param name="targetDir">子目录</param>
/// <param name="xmlNode">父目录XmlDocument</param>
/// <param name="myDocument">XmlDocument对象</param>
private static void CreateBranch(string targetDir,XmlElement xmlNode,XmlDocument myDocument)
{
foreach(string fileName in Directory.GetFiles(targetDir))
{
XmlElement childElement = myDocument.CreateElement("File");
childElement.InnerText = fileName.Substring(fileName.LastIndexOf("\\")+1);
xmlNode.AppendChild(childElement);
}
foreach(string directory in Directory.GetDirectories(targetDir))
{
XmlElement childElement = myDocument.CreateElement("Directory");
childElement.SetAttribute("Name",directory.Substring(directory.LastIndexOf("\\")+1));
xmlNode.AppendChild(childElement);
CreateBranch(directory,childElement,myDocument);
}
}