Как я могу загрузить файлы каталога 1 на 1 в C #? - PullRequest
1 голос
/ 23 августа 2011

Я хочу загрузить все XML-файлы 1 на 1 с помощью C #. И все файлы находятся в одном каталоге. Не могли бы вы дать мне несколько образцов для этого?

Спасибо SUT

Ответы [ 2 ]

9 голосов
/ 23 августа 2011

Просто наберите это по памяти, но я думаю, это поможет:

DirectoryInfo di = new DirectoryInfo(PathToYourFolder);

foreach (FileInfo fi in di.GetFiles("*.xml")) 
{
    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load(fi.FullName);
}

Если вам нужно перейти в дочерние папки, сделайте это изменение:

foreach (FileInfo fi in di.GetFiles("*.xml", SearchOption.AllDirectories))
2 голосов
/ 23 августа 2011

Я не уверен, что вы имеете в виду под "1 на 1", но я думаю, это то, что вы ищете.

var xmls = Directory.GetFiles(myPath, "*.xml", SearchOption.AllDirectories);
foreach (var file in xmls )
{
    using (var fileStream = new FileStream(file, FileMode.Open))
    {
        using (var reader = new StreamReader(fileStream))
        {
            reader.BaseStream.Seek(0, SeekOrigin.Begin);
            fileContent = reader.ReadToEnd();
        }
    }
}

xmls все файлы в myPath, а также внутривсе подпапки с помощью SearchOption вы можете определить, хотите ли вы все файлы или только файлы TopLevel.Затем fileStream - это открытый файл для каждого найденного файла, а для чтения всего содержимого используется потоковый ридер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...