تور لحظه آخری
امروز : جمعه ، 18 آبان 1403    احادیث و روایات:  پیامبر اکرم (ص):امّتم همواره در خير و خوبى اند تا وقتى كه يكديگر را دوست بدارند، نماز را برپا دارند،...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

قیمت پنجره دوجداره

بازسازی ساختمان

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

اوزمپیک چیست

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

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

بی متال زیمنس

ساختمان پزشکان

ویزای چک

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

 






آمار وبسایت

 تعداد کل بازدیدها : 1827245578




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

File IO Function


واضح آرشیو وب فارسی:سایت ریسک: someone23-09-2006, 11:22 PMسلام. به طور خلاصه میشه گفت که: File یک واحد مقدماتی از ذخیره سازی یا Storage هست و Computer رو قادر میکنه تا اطلاعات رو از هم تشخیص بده. File IO Function این اجازه رو به برنامه ها میده تا بتونن یک File روCreate یا Modify یا Open یا Delete کنه. همچنین این اجازه رو به برنامه ها میده که بتونن به اطلاعات System دسترسی داشته باشن. File IO Function همراه SDK منتشر شده و بشتر توابعش در Kernel32.Dll قرار داره. .اصطلاحا به این توابع API گفته میشه Application Programming Interface که مجموعه ای از توابع هست برای توسعه برنامه ها. که پرکاربردترینش رو معرفی میکنم: 1-CopyFile 2-CreateDirectory 3-CreateFile 4-DeleteFile 5-GetCurrentDirectory 6-GetDiskFreeSpace 7-GetDriveType 8-GetFileAttributes 9-GetFileSize 10-GetFileType 11-GetLogicalDrives 12-GetLogicalDriveStrings 13-MoveFile 14-ReadFile 15-RemoveDirectory 16-WriteFile 1-CopyFile همونطور که از اسم این تابع بر میآد برای copy کردن یهfile به کار میره که استفاده ازش هم بسیار راحت هست.این تابع 3 تا آرگومان داره که به صورت زیر هستند: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! آرگومان اول[/B] اسم وآدرس File نظر هست. آرگومان دوم اسم وآدرس File هست که قرار Copyبشه. آرگومان سوم اگه TRUE باشه اگه در محلی که قرار فایل اونجا کپی یشه فایلی با همون اسم وجود داشته باشه عملیات لغو میشه و اگه FALSE باشه فایل رو Repalce میکنه. و این هم یه نمونه از کاربردش: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! 2- CreateDirectory همون طور که از اسم این یکی هم پیداست برای ایجاد یک پوشه به کار میره: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! آرگومان اول آدرس واسم پوشه مورد نظر هست. آرگومان دوم هم مربوط میشه به خصوصیات امنیتی یا Security Attribute که اگه NULL باشه یه پوشه باخصوصیات Normal ایجاد میکنه. و این هم یه نمونه از کاربردش: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!!راستی یکی از مهمترین کارهایی که یه برنامه نویسی حرفه ای انجام میده error Handling هست. GetLastError تابعی هست که شماره ی آخرین Error رو نشون میده که میشه مفهوم اون رو از روی جدول این تابع بدست آورد. 3-CreateFile بطور ساده این تابع یه File ایجاد یا باز میکنه.اما در حقیقت تعریف کلی این تابع اینه که برای ایجاد یا باز کردن یکی از Object های زیر به کار میره و Handle ی رو برمیگردونه که اجازه ی دستزسی به Object مورد نظر رو میده. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!!این تابع دارای آرگومان های زیر هست: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! آرگومان اول مربوط به اسم فایلی هست که قرار ایجاد یا باز بشه. آرگومان دوم مربوط به نوع دسترسی به فایل هست که مثلا اگه GENERIC_READ باشه تنها اجازه ی خوندن رو میده واجازه تغییر در فایل رو نمیده. آرگومان سوم وضعیت Sharing فایل رو بررسی می کنه. آرگومان چهارم که مربوط به SecurityAttributes میشه که اجازه میده Handle برنامه توسط یه ChildProcess به ارث برده شه. آرگومان پنجم وضعیت ایجاد یا باز کردن فایل رو بررسی میکنه مثلا CREATE_ALWAYS همیشه یه فایل ایجاد میکنه. آرگومان ششم خصوصیات فایل رو مشخص میکنه مثلا FILE_ATTRIBUTE_HIDDEN یه فایل Hidden ایجاد میکنه. آرگومان هفتم مربوط به handle یک Template file میشه. این هم یه نمونه از کاربردهاش: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! 4-DeleteFile همون طور که از اسم این یکی هم پیداست برای delete کردن یک File به کار میره. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! که خوشبختانه فقط یه آرگومان داره و مربوط میشه به اسم وآدرس فایل مورد نظر. اگه مقدار برگشتی تابع غیر از 0 باشه delete کردن انجام شده. این هم یه نمونه ازش: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! 5-GetCurrentDirectory همون طور که از اسم این یکی هم پیداست آدرس Directory جاری از برنامه ی در حال اجرا رو بر میگردونه. که 2 تا آرگومان داره وبه شکل زیر تعریف شده: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! آرگومان اول size یه بافر هست که آدرس این پوشه در ش قرار میگیره. آرگومان دوم خود بافر مربوطه هست.که این بافر باید LPWSTR باشه. میتونید از char[] هم استفاده کنید اما Type casting یادتون نره. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! این قسمت اول File IO Functions بود. سعی میکنم تا چند روز دیگه ادامش رو بذارم. خوشحال میشم نظر بدید. ممنون. someone24-09-2006, 04:08 PMدوباره سلام. ادامه ی بحث: 6-GetDiskFreeSpace این تابع اطلاعات موبوط به دیسک رو برمیگردونه.دارای 4 آرگومان هست و به شکل زیر تعریف میشه: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! آرگومان اول مربوط به پارتیشنی که می خواید size اش رو در بیارید میشه. آرگومان دوم تعداد Sector هایی که در هر Cluster در پاتیشن مورد نظر داره درش قرار میگیره. آرگومان سوم تعداد Byte هایی هست که در هر Sector این پارتیشن قرار داره. آرگومان چهارم تعداد Cluster های خالی رو بر میگردونه آرگومان پنجم تعدا کل Cluster ها رو بر میگردونه. و اینم مثال برای استفاده از این تابع: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! در ضمن در مورد __int64 این توضیح رو بدم که یک 64-bit Integer رو تعریف میکنه.و برای استفاده از این نوع در printf کافی از%I64u استفاده بشه.دلیل استفاده از u وجود unsigned هست. برای بدست آوردن فضای خالی کافیه تعداد Cluster های خالی رو در تعداد Sector های هر Cluster و تعداد Byte های هر Sector ضرب کنیم.واضحه هست که جواب نهایی بر حسب Byte هست به این دلیل بر 1024 تقسیم میشه. 7- GetDriveType این تابع تشخیص میده که نوع Disk Drive چیه.مثلا CDRom یا Removable و... هست. دارای یک آرگومان هست وبه شکل زیر تعریف میشه: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! که این آرگومان مربوط به drive ی هست که میخواین نوعش رو پیدا کنید.مقدار برگشتی این تابع نوع Drive رو مشخص میکنه که میتونه یکی از موارد زیر باشه: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! اینم مثال برای استفاده از این تابع: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! 8- GetFileAttributes این تابع خصوصیات یک File یا Directory ر. بر میگردونه. یک آرگومان داره و به شکل زیر تعریف میشه: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! که این آرگومان اسم وآدرس File یا Directory ای هست که قرار خصوصیاتش نشون داده بشه. مقدار برگشتی این تابع یک یا چند تا از مقادیر زیر میتونه باشه. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! اینم یک مثال: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! البته توجه داشته باشید که این برنامه سختار مناسبی برای این کار نیست چون اگه یه File هم ReadOnly و هم Hidden باشه این برنامه تنها جروجی تابع رو که یه مقدار عددی هست رو بر میگردونه چون دو Flag باهم ترکیب شدن. اين دو پرچم با هم Or میشن. قسمت بعدي رو هم در اولين فرست ميذارم. خوشحال ميشم نظر بديد. ممنون. someone26-09-2006, 06:24 PMدوباره سلام. 9- GetFileSize همونطور که از اسمش پیداشت اندازه File رو بر یگردونه بر حسب Byte این نابع دارای 2 آرگومان هست. آرگومان اول Handle مربوط به File مورد نظر هست. آرگومان دوم high-order word از اندازه ی File مورد نظر. اگر این تابع نتونه اندازه ی فایل رو برگردونه مقدار برگشتیش برابر با INVALID_FILE_SIZE میشه. استفاده ازش هم راحت هست.این یه نمونه از کاربردش: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! 10- GetFileType نوع یک فایل رو بر میگردونه وفقط دارای یک آرگومان هست.که مربوط به Handle فایل مورد نظر میشه. که مقدار برگشتی این تابع یکی از مقادیر زیر هست: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! یه توضیح کوچیک در مورد مقدار برگشتی این تابع بدم. اولی که معلومه در باره ی نوع ناشناخته یک فایل هست. دومی که یعنی یک فایل دیسک هست. سومی یعنی یه کاراکتر فایل هست مثل LPT Device یا Console چهارمی هم مربوط میشه به یک pipe named یا anonymous pipe و مثال مربوط به این تابع: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! 11- GetLogicalDrives این تابع Drive هایی که در System وجود داره رو به صورت bitmask نشون میده. منظور از bitmask اینه که مقدار Drive های موجود رو به صورت باینری نشون میده. مثلا اگه سیستم شما دارای سه Drive به شکل زیر باشه. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! مقدار خروجی این تابع به ین شکل هست. 00001101 که میتونید با نوشتن یه تابع این مقادیر رو پیدا کنید. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! البته تابعی که نوشتم بهینه نیست و کد اضافی داره.شما میتونید بهینه اش کنید. someone27-09-2006, 02:43 AM12- GetLogicalDriveStrings این تابع اسامی Drive هایی که روی سیستم دارید رو در Buffer قرار میده. و نسبت به تابع قبلی کمی کار رو راحت تر میکنه. این تابع دو آرگومان داره و به شکل زیر تعریف میشه: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! آرگومان اول اندازه بافر مربوط هست. آرگومان دوم خود بافر هست که از نوع LPTSTR هست.دقت کنید که این نوع در VS2005 به LPWSTR تغییر کرده.این تغییر در بسیاری از API ها وجود داره. اگر این تابع نتونه کارش رو انجام بده مقدار 0 رو بر میگردونه. اینم یه مثال برای استفاده از این تابع: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! لطفا یکی یه نظر بده تا بدونم كارم فايده داشته يا نه. انتقادي , پيشنهادي اگه داريد لطفا بذاريد. ممنون. someone27-09-2006, 04:41 PM13-MoveFile این تابع یک File یا Directory رو با تمام زیر مجموعه هاش رو Move میکنه یا به عبارتی همون cut. این تابع 2 آرگومان داره وبه شکل زیر تعریف میشه: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! آرگومان اول اسم و آدرس فایلی هست که قرار Move بشه. آرگومان دوم اسم وآدرس جدید فایل مورد نظر هست. اگه این تابع نتونه Move رو انجام بده مقدار 0 رو بر میگردونه یا به اصطلاح FALSE یه نمونه از کاربردهاش : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! 14-ReadFile همونطور که از اسمش هم پیداست برای خواندن اطلاعات از یه فایل به کار میره. وشروع خوندش رو هم از شاخص File Pointer شروع میکنه.در حالت پیش فرض از ابتدا شروع به خوندن میکنه. این تابع دارای 5 آرگومان هست وبه شکل زیر تعریف میشه. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! آرگومان اول یک Handle به فایل مورد نظر هست. آرگومان دوم بافری هست که اطلاعات در اون قرار میگیره. آرگومان سوم تعداد بایت هایی هست که قرار خونده بشه. آرگومان چهارم تعداد بایت های خونده شده هست. آرگومان پنجم یکpointer به Overlapped Structure هست. اگه عمل خوندن فایل با موفقیت مقدار برگشتی غیر از 0 هست. اگه مقدار برگشتی غیر از 0 باشه و تعداد بایت های خونده شده 0 باشه یعنی عمل خوندن بیش از حد انجام شده. یه مثال برای استفاده از این API !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! دقت کنید که در این روش برای خواندن یه آرایه دینامیک روی Heap به اندازه ی File مورد نظر ایجاد شده. این یکی از روش های خواندن هست. فقط به یاد داشته باشید که باید Buffer رو با استفاده از delete از حافظه آزاد کنید. someone28-09-2006, 01:34 AM15-RemoveDirectory برای delete کردن یکDirectory به کار میره. دارای یک آرگومان هست و به شکل زیر تعریف شده: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! این آرگومان مربوط میشه به اسم وآدرس پوشه ی مورد نظر. و مثال برای کار با این تابع: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! البته دقت کنید که Directory مورد نظر باید خالی باشه. 16-WriteFile این تابع اطلاعات مورد نظر رو در یه فایل قرار میده. و از این تابع میتوان در operation asynchronous و synchronous operation استفاده بشه. این تابع دارای 5 آرگومان هست و بشکل زیر استفاده میشه. در مورد synchronous یه توضیح کوتاه بدم. فرض کنید که برنامتون قرار همزمان چند کار انجام بده.وقتی تابعی بصورت synchronous تعریف شده به این منظور هست که هنگامی که این تابع مشغول فعالیت هست مثلا داره اطلاعاتی رو در فایل مینویسه به برنامتون این اجازه رو میده که به سایر process ها هم برسه. این یه تعریف ساده از synchronous هست. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! آرگومان اول یک Handle به فایل مورد نظر هست. آرگومان دوم بافری هست که اطلاعات در اون قرار میگیره. آرگومان سوم تعداد بایت هایی هست که قرار نوشته بشه. آرگومان چهارم تعداد بایت های نوشته شده هست. آرگومان پنجم یکpointer به Overlapped Structure هست. اگه عمل خوندن فایل با موفقیت مقدار برگشتی غیر از 0 هست. خب. میریم سر مثال: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! خب 16 از پركابردترين API ها رو در IO رو معرفي كردم. اميدوارم توضيحات كافي و واضح بوده باشن. خوشحال ميشم نظر بديد. ممنون. someone19-10-2006, 12:59 AMكسي از اين topic استفاده كرده؟ اگه آره, topic چطور بوده؟ مشكلي نداشته؟ ممنون ميشم نظر بديد. همين طور درباره system tray و common dialog و BrowseForFolder ممنون. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 429]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن