我想读取c# .net中特定文件夹中的所有xml文件
XDocument doc2 = XDocument.Load((PG.SMNR.XMLDataSourceUtil.GetXMLFilePath(Locale, "Products/category/product.xml")));
我有多个产品在类别文件夹..要循环文件夹,应该得到所有的产品XML文件名。
XDocument doc2 = XDocument.Load((PG.SMNR.XMLDataSourceUtil.GetXMLFilePath(Locale, "Products/category/x1.xml")));
using System.IO;
...
foreach (string file in Directory.EnumerateFiles(folderPath, "*.xml"))
{
string contents = File.ReadAllText(file);
}
注意上面使用了。net 4.0的特性;在以前的版本中将EnumerateFiles
替换为GetFiles
)。此外,将File.ReadAllText
替换为您喜欢的读取xml文件的方式-可能是XDocument
, XmlDocument
或XmlReader
。
using System.IO;
DirectoryInfo di = new DirectoryInfo(folder);
FileInfo[] files = di.GetFiles("*.xml");
using System.IO;
//...
string[] files;
if (Directory.Exists(Path)) {
files = Directory.GetFiles(Path, @"*.xml", SearchOption.TopDirectoryOnly);
//...
您可以使用DirectoryInfo.GetFiles
方法:
FileInfo[] files = DirectoryInfo.GetFiles("*.xml");
如果你想复制一个文件夹中的所有文本文件合并并复制到另一个文件夹,你可以这样做:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace HowToCopyTextFiles
{
class Program
{
static void Main(string[] args)
{
string mydocpath=Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
StringBuilder sb = new StringBuilder();
foreach (string txtName in Directory.GetFiles(@"D:Links","*.txt"))
{
using (StreamReader sr = new StreamReader(txtName))
{
sb.AppendLine(txtName.ToString());
sb.AppendLine("= = = = = =");
sb.Append(sr.ReadToEnd());
sb.AppendLine();
sb.AppendLine();
}
}
using (StreamWriter outfile=new StreamWriter(mydocpath + @"AllTxtFiles.txt"))
{
outfile.Write(sb.ToString());
}
}
}
}
试试这个,它对我有用。
语法为Directory.GetFiles(string path, string searchPattern);
var filePath = Server.MapPath("~/App_Data/");
string[] filePaths = Directory.GetFiles(@filePath, "*.*");
此代码将返回App_Data
文件夹内的所有文件。
第二个参数。表示具有文件扩展名的搜索模式,其中第一个*是文件名,第二个是文件的格式或文件扩展名,如(*.png -任何。png格式的文件名。
using System.IO;
string[] arr=Directory.GetFiles("folderpath","*.Fileextension");
foreach(string file in arr)
{
}