সি # .নেট ডিরেক্টরিতে সমস্ত ফাইলের মধ্য দিয়ে কীভাবে লুপ করবেন?


121

আমি ফোল্ডারে এবং তার সাবফোল্ডারগুলিতে ফাইলগুলি পেতে চাই following নিম্নলিখিত কোডটি তার সাবফোল্ডারে ফাইলগুলি পায় না:

string[] files = Directory.GetFiles(txtFolderPath.Text, "*ProfileHandler.cs");

যে কেউ সি # নেট এ এটি প্রয়োগ করতে দয়া করে আমাকে বলতে পারেন?


2
আমি সবসময় এমএসডিএন পদ্ধতিগুলিকে প্রাধান্য দিয়েছি। এই লিঙ্কের নীচে তারা ডাব্লু / কনসোল প্রোগ্রাম (সি #) একটি পুনরাবৃত্ত উদাহরণ দেয়।
— জাস্টিন

1
@ পানুভিন - দ্রষ্টব্য: এমএসডিএন কোডটি কিছুটা বিপজ্জনক। খুব বড় ফোল্ডার এবং সাবফোল্ডার সামগ্রী (অনেকগুলি ফাইল) এর জন্য আপনি স্ট্যাকওভারফ্লো ব্যতিক্রম পেতে পারেন (পুনরাবৃত্তির কোডের কারণে)
— জোয়েজার

উত্তর:


216
string[] files = 
    Directory.GetFiles(txtPath.Text, "*ProfileHandler.cs", SearchOption.AllDirectories);

আপনি যা উল্লেখ করছেন ঠিক সেই পরামিতিটি প্রভাব ফেলে। থেকে এটিকে সেট করে নিন AllDirectories সাবফোল্ডার সহ যে ফাইলের জন্য, এবং এটি সেট TopDirectoryOnly আপনি শুধুমাত্র ডিরেক্টরি দেওয়া এবং সাবফোল্ডার অনুসন্ধান করতে চান।

বিশদগুলির জন্য এমডিএসএন দেখুন: https://msdn.microsoft.com/en-us/library/ms143316(v=vs.110).aspx


5
আপনার ফোল্ডারের কাঠামোর কোনও লুপ থাকলে এটি অসীম লুপ হয়ে যাবে। দেখুন msdn.microsoft.com/en-us/library/ms143448.aspx
— এন্থনি Wieser

মাঝের প্যারামিটারটির উদ্দেশ্য কী?
— দরকারী

2
এটিকে সার্চপ্যাটার্ন বলা হয় এবং এটি এমন একটি ফিল্টার যার মাধ্যমে ফাইলগুলি নির্বাচন করা হয়। এই ক্ষেত্রে এটি "প্রোফাইলহ্যান্ডলার। সি" এ শেষ হওয়া সমস্ত ফাইল নির্বাচন করবে। একটি সময়ে কটাক্ষপাত আছে MDSN
— Migwell

3

কোড নীচে চেষ্টা করুন

Directory.GetFiles(txtFolderPath.Text, "*ProfileHandler.cs",SearchOption.AllDirectories)

1

আপনি এই পৃষ্ঠায় ডিপ ফোল্ডার অনুলিপিটি দেখছেন, এটি পুনরাবৃত্ত উপায়গুলি ফাইলগুলি পুনরাবৃত্তি করতে ব্যবহার করে এবং কিছু দুর্দান্ত টিপস রয়েছে যেমন ফিল্টারিং কৌশলগুলি etc.

http://www.codeproject.com/Tips/512208/Folder-Directory-Deep-Copy-including-sub-directori

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