নির্দিষ্ট ফোল্ডারের ভিতরে সমস্ত ফাইল কীভাবে পড়তে হয়


103

আমি সি # .নেটে একটি নির্দিষ্ট ফোল্ডারের ভিতরে সমস্ত এক্সএমএল ফাইলগুলি পড়তে চাই

XDocument doc2 = XDocument.Load((PG.SMNR.XMLDataSourceUtil.GetXMLFilePath(Locale, "Products/category/product.xml")));

আমার ক্যাটাগরি ফোল্ডারে একাধিক পণ্য রয়েছে .. ফোল্ডারটি লুপ করতে চান এবং সমস্ত পণ্যের এক্সএমএল ফাইলের নাম পাওয়া উচিত।

XDocument doc2 = XDocument.Load((PG.SMNR.XMLDataSourceUtil.GetXMLFilePath(Locale, "Products/category/x1.xml")));

5
আপনি কি চেষ্টা করেছেন? কি কাজ হয়নি? আপনার কোথায় অসুবিধা হচ্ছে? tinyurl.com/so-hints
ওবেদ

উত্তর:


247
using System.IO;
...
foreach (string file in Directory.EnumerateFiles(folderPath, "*.xml"))
{
    string contents = File.ReadAllText(file);
}

উপরের অংশে একটি। নেট 4.0 বৈশিষ্ট্য ব্যবহার করুন নোট করুন; পূর্ববর্তী সংস্করণে উপস্থিত প্রতিস্থাপন EnumerateFilesসঙ্গে GetFiles)। এছাড়াও, File.ReadAllTextআপনার এক্সএমএল ফাইলগুলি পড়ার পছন্দের পদ্ধতির সাথে প্রতিস্থাপন করুন - সম্ভবত XDocument, XmlDocumentবা একটি XmlReader


1
'সিস্টেম.আইও.ডাইরেক্টরি'-তে' এনিউমারেট ফাইলস '
রাম

4
"সিস্টেম.আইও ব্যবহার করে;" উজ্জ্বল !! কেন আরও লোকেরা এটি দিতে পারে না? লোকেরা কী সম্পর্কে কথা বলছেন তা জানার চেষ্টা করা এত বিরক্তিকর হতে পারে
ব্যবহারকারী 001

1
@ ব্যবহারকারী001 কারণ সাধারণত আইডিই আপনার জন্য এই জাতীয় জিনিসগুলি খুঁজে পেতে এবং যুক্ত করতে পারে - কেবল সিটিআরএল + টিপুন।
মার্ক গ্র্যাভেল

1
@ মার্কগ্রাভেল হাহা সাধারণত :(
ব্যবহারকারী001

আমি মনে করি প্রতিটি ফাইলের সামগ্রী যুক্ত করার জন্য লুপের অভ্যন্তরে স্ট্রিংবিল্ডার ব্যবহার করা ভাল। sb.Append (File.ReadAllText (ফাইল));
e0x3

25
using System.IO;

DirectoryInfo di = new DirectoryInfo(folder);
FileInfo[] files = di.GetFiles("*.xml");



6

আপনি যদি এক এক ফোল্ডারে সমস্ত পাঠ্য ফাইল অনুলিপি করতে এবং অন্য ফোল্ডারে অনুলিপি করতে দেখছেন তবে তা অর্জনের জন্য আপনি এটি করতে পারেন:

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());
      }   
    }
  }
}

6

এটি চেষ্টা করুন এটি আমার জন্য কাজ করছে ..

বাক্য গঠনটি হ'ল GetFiles(string path, string searchPattern);

var filePath = Server.MapPath("~/App_Data/");
string[] filePaths = Directory.GetFiles(@filePath, "*.*");

এই কোডটি App_Dataফোল্ডারের অভ্যন্তরে সমস্ত ফাইল ফেরত দেবে ।

দ্বিতীয় প্যারামিটার ফাইল এক্সটেনশন সহ সার্চপ্যাটার্ন নির্দেশ করে যেখানে প্রথম * ফাইলের নাম এবং দ্বিতীয়টি ফাইলের বিন্যাসের জন্য বা ফাইল এক্সটেনশন যেমন (* .png - .png ফর্ম্যাট সহ যে কোনও ফাইলের নাম)।


0
    using System.IO;
    string[] arr=Directory.GetFiles("folderpath","*.Fileextension");
      foreach(string file in arr)
       {

       }

1
যদিও এই সমাধানটি ওপি-র সমস্যার উত্তর দিতে পারে, কেবলমাত্র একটি কোড-কেবল উত্তর না লেখার পরামর্শ দেওয়া হয়েছে কারণ এটি ভবিষ্যতের ব্যবহারকারীদের পক্ষে খুব বেশি সহায়ক নাও হতে পারে। একটু বিস্তৃত। এই সমাধান কি সরবরাহ করে? কীভাবে এটি ওপিটির উপকারে আসবে? ইত্যাদি
জেফ জেমস

আমি গতকাল কোডটি দেখেছি তবে এটি কোনও অনুলিপি নয়
রাহুল সাহু

আমি ইঙ্গিত দিচ্ছিলাম না যে আপনি অনুলিপি / পেস্ট করেছেন। আমি আমার মন্তব্য আপডেট করেছি। এখনও, আমার মন্তব্য এখনও দাঁড়িয়ে। সম্প্রসারিত।
জেফ জেমস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.