Невозможно правильно отобразить содержимое в цикле - PullRequest
0 голосов
/ 07 марта 2019

Я написал код c #, чтобы получить все имена файлов, напечатав одну из данных внутри. Файл примера содержит (file1.mht, file2.mht, file3.mht). Может быть, содержимое внутри (aaaaaa, bbbbbb, cccccc) соответствует последовательности файла. Пример вывода: file1.mht aaaaaa file2.mht bbbbbb file3.mht cccccc

Но я столкнулся с проблемой: он не может зациклить имя файла, показывая содержимое внутри. Может кто-нибудь поможет? Текущий результат - сначала показать все каталоги, и только проделал работу для первого каталога.

using HtmlAgilityPack;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Configuration;
using System.Collections.Specialized;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo mht_file = new DirectoryInfo(@"C:\Users\liewm\Desktop\SampleTest\");
            FileInfo[] Files = mht_file.GetFiles("*.mht");
            string str = "";
            string mht_text = "";
            string directory = "";
            string listInfo = "";

            foreach (FileInfo file in Files)
            {
                str = file.Name;
                directory = mht_file + str;
                Console.WriteLine(directory);
            }
            foreach (char filePath in directory)
            {
               //Here is my work to retrieve the data in the file

                Console.WriteLine("Names:" + str + "    " + "Component:" + component);
                Console.ReadKey();
            }


        }


    }

}

Ответы [ 3 ]

1 голос
/ 07 марта 2019

Из вашего вопроса я понимаю, что вы хотите напечатать имя файла с последующим содержимым того же самого, если это так, вы можете попробовать:

DirectoryInfo mht_file = new DirectoryInfo(@"C:\Users\liewm\Desktop\SampleTest\");
FileInfo[] Files = mht_file.GetFiles("*.mht");

foreach (FileInfo file in Files)
{
    // read the content of the file
    var content = File.ReadAllText(file.FullName);

    // from your question "Example out output: file1.mht aaaaaa"
    Console.WriteLine($"{file.Name} {content}");
}
0 голосов
/ 07 марта 2019

Пожалуйста, попробуйте это.

  foreach (FileInfo file in Files)
            {
                str = file.Name;
                directory += mht_file + str;
                Console.WriteLine(directory);
            }
0 голосов
/ 07 марта 2019

выполнил работу только для последнего в каталоге.

Да, поэтому ваша переменная каталога - это строка string directory = "", которая будет переопределена последним значением итерации цикла,Скорее, вы хотите хранить в string[], а не обрабатывать их все.

foreach (FileInfo file in Files)
{
  str = file.Name;
  directory = mht_file + str;
  Console.WriteLine(directory);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...