+1 امتیاز

سلام برنامه ای میخوام بنویسم که آدرس یک فولدر را دریافت کرده و تک تک فایل های موجود در آن را در فولدر دیگری که آدرس آن را نیز دریافت می کند، کپی کند.

در واقع می بایست ابتدا لیست اسامی تمامی فایل های فولدر مبدا را استخراج کرد و سپس تک تک فایل ها را به وسیله کلاس مربوطه باز کند و همزمان با خواندن فایل از پوشه مبدا فایل جدیدی در پوشه مقصد ایجاد کرده و اطلاعات را در آن ذخیره کند

تا جایی که میدونم برای باز کردن و نوشتن فایل های متنی که دارای یکی از پسوند های:.csv.txt هستند می بایست از کلاس های مربوط به کار با فایل های متنی استفاده میشه یعنی کلاس StreamReader va StreamWriter

در واقع باید فایل را از پوشه مبدا بخوانید و خط به خط آن را در فایل مقصد بنویسید.

همچنین تا جایی که میدونم برای بازکردن و نوشتن فایل ها باینری با پسوندهای زیر: .jpg .png .pdf باید از کلاس های BinaryReader va BinaryWriter استفاده کرد. برای این فایل ها باید هر بار مثلا مقدار 100 بایت را از فایل مبدا بخونیم و در فایل مقصد بنویسیم.

در ضمن من میدونم که از تایع file.copy میشه این کار رو کرد ولی تو ساخت این برنامه نباید از این تابع استفاده کرد در حقیقت اگر بشه به سورس همین تابع دست پیدا کرده خیلی خوب میشه

ممنون میشم که اگر کسی بلده کمکم کنه

1 پاسخ

+1 امتیاز
سلام

اینکه شما میخواید بدون هیچ تابعی مثلا متد copy رو پیاده سازی کنید و حتی از BinaryReader va BinaryWriter هم استفاده نکنید و در کل از هیچ کتابخونه دات نت استفاده نکیند کار خیلی سختی هست و میتونم بگم غیر ممکن هست.چون شما دارید از سی شارپ و کتابخانه های دات نت استفاده می کنید.شاید بتونید خودتون بعضی متد های ساده دات نت رو پیاده سازی کنید (که باز هم به سرعت اون ها نمیرسه (میتونید امتحان کنید با استفاده از StringBuilder تعداد زیادی کاراکتر رو بهم بچسبونید ، حالا با استفاده از یک رشته string این کار رو تکرار کنید و زمان رو به صورت قابل ملاحظه حس می کنید) ولی بعضی ها رو نمیشه پیاده کرد

من برای شما سورس کلاس File رو میذارم ولی میبیند که باز هم از یه سری توابع دات نت استفاده کرده.

متد Copy هم در اینجا هست

http://reflector.webtropy.com/default.aspx/4@0/4@0/DEVDIV_TFS/Dev10/Releases/RTMRel/ndp/clr/src/BCL/System/IO/File@cs/1305376/File@cs
سلام شدنش که حتما میشه چون اون کسی که تمرین رو بهم داده خودش انجامش داده پس امکان داره و فقط نباید از تابع file.copy استفاده کرد، بله حرف شما درسته که باید در برنامه از توابع دات نت استفاده کرد ولی مهم اینکه از این تابع ذکر شده استفاده نشه و چون من آشنایی با c#  کلاس های اون ندارم کمی تو تنظیم این کد ها گیج شدم و نیاز به کمک دوستان دارم
توسط (102 امتیاز) 1 4
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,924 کاربر

دسته بندی ها

...