C# 4.0 递归地获取目录中的文件并读取它们

C# 4.0 递归地获取目录中的文件并读取它们,c#-4.0,C# 4.0,我想知道这里是否有人可以帮助我,因为我对C还是很陌生。我有一个驱动器,里面有文件夹,其中所有文件夹都包含PDF文件。有没有一种方法可以递归地循环文件,读取这些文件并将数据写入.txt文件 我不知道如何在我的控制台应用程序中实现这一点,所以有人有任何代码可以帮助我吗 我尝试了这个prgrm,但它的抛出错误为c:\anil,找不到文件或资源 class Program { static void Main(string[] args) { DirectoryInfo

我想知道这里是否有人可以帮助我,因为我对C还是很陌生。我有一个驱动器,里面有文件夹,其中所有文件夹都包含PDF文件。有没有一种方法可以递归地循环文件,读取这些文件并将数据写入.txt文件 我不知道如何在我的控制台应用程序中实现这一点,所以有人有任何代码可以帮助我吗

我尝试了这个prgrm,但它的抛出错误为c:\anil,找不到文件或资源

class Program
{

    static void Main(string[] args)
    {
        DirectoryInfo di = new DirectoryInfo(@"C:\anil");
        FileInfo[] pdfFiles = di.GetFiles("*.pdf", SearchOption.AllDirectories);
        foreach (FileInfo pdf in pdfFiles)
        {
            Console.Write(ReadFile(pdf.FullName));
        }
        Console.Read();
    }

    public static string ReadFile(string destfolder)
    { 
        foreach(string file in Directory.Enumeratefiles(destfolder,"*.pdf"))
        {
            PdfReader pdfreader = new PdfReader(destfolder); 
        }
        string pdfText = string.Empty;
        for (int i = 1; i <= pdfreader.NumberOfPages; i++)
        {
            ITextExtractionStrategy itextextStrat = new iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy(); 
            PdfReader reader = new PdfReader(Filename);
            String extractText = PdfTextExtractor.GetTextFromPage(reader, i, itextextStrat);
            extractText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(extractText)));
            pdfText = pdfText + extractText; reader.Close(); } return pdfText; 
        } 
    }
}
你必须

浏览目录树。有关示例,请参见。 然后是s。您可以使用SearchOption来搜索子目录。 读取stackoverflow将有助于写入文本文件。
附言:如果你能给我们更多的信息,关于你尝试了什么/或者你是如何做到这一点的。您将得到更具体的答案。

错误表明文件夹C:\anil不存在,或者运行程序的帐户没有访问该文件夹的权限

至于你的代码,有几件事可能会成为突出的问题

您将传递到ReadFile的参数视为文件夹,但传递的是文件名,而不是文件夹

您的foreach循环将只在下一行工作,因为您没有将需要循环的所有内容都放在代码块{}中:


我尝试了这段代码,但它抛出了错误…..它应该读取文件夹及其子文件夹中的所有pdf文件。如果您也能将错误放入其中,则调试会更容易。c:\\n未将其作为文件或资源找到。这是在Readfile方法中调试后获取的错误。完整的跟踪可能会有所帮助,但根据您提到的,该文件不存在或您无权访问它。FileInfo pdf.Exists返回什么?我在Readfile方法中有问题,有人能帮我吗?请不要交叉发布到多个Stack Exchange站点。您最终会造成这样的混乱。我已经尝试过了,但它并没有出错………m在PdfReader语句中出错..嵌入的语句不能是声明或标记statement@AnilKumar-你调试通过了吗?错误是什么?您有正确的权限吗?是的,我有正确的权限…错误是嵌入语句不能是具有此PdfReader PdfReader=new PDFREADESDESTFOLLER的声明或标记语句;statement@AnilKumar-你调试通过了吗?您是否有尚未发布的使用声明?
  foreach(string file in Directory.Enumeratefiles(destfolder,"*.pdf"))
  {
      PdfReader pdfreader = new PdfReader(destfolder); 
      string pdfText = string.Empty;
      for (int i = 1; i <= pdfreader.NumberOfPages; i++)

      {
           ITextExtractionStrategy itextextStrat = new iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy(); 
           PdfReader reader = new PdfReader(Filename);
           String extractText = PdfTextExtractor.GetTextFromPage(reader, i, itextextStrat);
           extractText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(extractText)));
           pdfText = pdfText + extractText; reader.Close(); } return pdfText; 

      } 
  }