جلسه دوم
تابع Open File :
از این تابع برای ساختن ، باز کردن و حذف کردن یک فایل می توان استفاده کرد ولی کار اصلی آن بدست آوردن دستگیره (Handle) یک فایل می باشد .
اصل تابع :
Public Declare Function OpenFile Lib "kernel32" Alias "OpenFile" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long
پارامتر ها :
lpFileName : نام و مسیر مورد نظر
lpReOpenBuff : این متغیر به ساختار OFSTRUCT برای درایفت اطلاعات فایل وقتی برای اولین بار باز می شود ، اشاره می کند .
Public Type OFSTRUCT
cBytes As Byte
fFixedDisk As Byte
nErrCode As Integer
Reserved1 As Integer
Reserved2 As Integer
szPathName(OFS_MAXPATHNAME) As Byte
End Type
- cBytes : ندازه ساختار .
- fFixedDisk : اگر این فیلد غیر صفر باشد یعنی فایل از هارد است
- nErrCode : اگر فایل باز نشود شماره خطا را درون خود نگه داری می کند
- Reserved1 و Reserved2 : رزرو شده است
- szPathName : این فیلد شامل مسیر و نام فایل می باشد
Public Const OFS_MAXPATHNAME = 128
wStyle : این پارامتر می تواند مقادیر زیر را داشته باشد :
OF_CREATE : با مقدار عددی &H1000 وقتی استفاده می شود که بخواهیم یک فایل ایجاد کنیم .
OF_DELETE : با مقدار عددی &H200 فایل مورد نظر را Delete می کند
OF_EXIST : با مقدار عددی &H4000 وقتی استفاده می کنیم که بخواهیم بفهمیم که فایل مورد نظر وجود دارد یا خیر اگر وجود داشته باشد مقدار 1 بر فردانده می شود
OF_PARSE : با مقدار عددی &H100 فقط ساختار OFSTRUCT را پر می کند
OF_READ : با مقدار عددی &H0 و فایل را فقط برای عملیات خواند باز می کند
OF_READWRITE : با مقدار عددی &H2 و فایل را برای خواندن و نوشتن باز می کند
OF_REOPEN : با مقدار عددی &H8000 فایل را با اطلاعاتی که در ساختار OFSTRUCT وجود دارد دوباره باز می کند .
OF_WRITE : با مقدار عددی &H1 و فایل را فقط برای نوشتن باز می کند
خروجی :
این تابع یک عدد است که دستگیره فایل می باشد به جز حالت EXIST .
تابع GetFileSize :
این تابع اندازه فایل را به بایت بر می گرداند .
اصل تابع :
Public Declare Function GetFileSize Lib "kernel32" Alias "GetFileSize" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
پارامتر ها :
hFile : دستگیره فایل می باشد که با استفاده از تابع OpenFile می توان به دست آورد .
lpFileSizeHigh : در vb برابر صفر قرار می دهیم ( این پارامتر از نوع اشاره گر است )
خروجی :
اندازه فایل مورد نظر برگردانده می شود
تابع FindFirstFile :
این تابع برای پیدا کردن یک فایل با مشخصاتی که به آن داده می شه می گردد .
اصل تابع :
Public Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
پارامتر ها :
lpFileName : این پارامتر از نوع String بوده و نام فایل مورد جستجو یا شرایط مورد نظر برای فایل را شامل می شه .
نام فایل : "c:\vb.exe"
شرایط پسوندی : "c:\*.exe"
lpFindFileData : این متغیر اشاره می کند به ساختار WIN32_FIND_DATA و هر فایلی که توسط تابع پیدا شود اطلاعات آن در این ساختار ذخیره می شود .
Public Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
dwFileAttributes : خصوصیات فایل پیدا شده را مشخص می کند . خصوصیاتی که در توابع GetFileAttributes و SetFileAttributes گفته شد .
ftCreationTime : این فیلد از نوع FILETIME می باشد و زمان ساخت فایل پیدا شده را مشخص می کنه .
ftLastAccessTime : این فیلد از نوع FILETIME می باشد و زمان آخرین دسترسی به فایل پیدا شده را مشخص می کنه .
ftLastWriteTime : این فیلد از نوع FILETIME می باشد و زمان آخرین باری که فایل پیدا شده نوشته شده را مشخص می کنه .
nFileSizeHigh : بالاترین اندازه فایل را به بایت را بر می گرداند .
nFileSizeLow : پایین ترین اندازه فایل را به بایت بر می گرداند .
cFileName : این پارامتر نام فایل پیدا شده را بر می گرداند . و MAX_PATH برابر 255 است .
cAlternate : این پارامتر مثل پارامتر بالایی با تفاوت اینکه فقط 8 کاراکتر نام فایل و 3 کاراکتر پسوند فایل می باشد .
خروجی :
اگر این تابع کار خود را به خوبی به اتمام برساند دستگیره یک فایل را بر می گرداند اگر تابع کار خود را به خوبی انجام ندهد مقدار 1- را بر می گرداند .
ساختار FILETIME :
Public Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
توضیح خاصی ندارد ولی شاید بعدا بگم .
تابع FindNextFile :
این تابع فایل دیگری را با خصوصیاتی که در تابع FindFirstFile تعریف شده را پیدا می کنه .
اصل تابع :
Public Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
پارامتر ها :
hFindFile : این پارامتر از نوع عددی است و دستگیره فایلی را که توسط تابع پیدا شده می باشد .
lpFindFileData : این پارامتر قبلا در تابع FindFirstFile گفته شده است .
خروجی :
اگر تابع کار خود را به خوبی انجام دهد مقدار یک یا True بر گردانده می شود .
علاقه مندی ها (بوک مارک ها)