PDA

View Full Version : بدست آوردن حجم فایل



tehran2009
دوشنبه 23 اردیبهشت 1387, 11:39 صبح
دوستان عزیز من یه برنامه نوشتم که فقط گیر یه قسمتی ازش هستم که تمومش کنم ممنون میشم کمکم کنید . سوال من اینه
مثلاَ من توی درایو c یک فایل test.txt دارم ( c:/test.txt ) حالا می خوام برایه برنامم این تعریف کنم که وقتی حجم فایل test.txt به 6 کیلو بایت رسید اونو توی قسمت مسیج ارسال ایمیل خالی کنه بعد ارسال کنه و همین کارو همینجوری تکرار کنه . یه عکسی هم برای مثال درست کردم که ببینید منظورمو بهتر بفهمید .

zacaria
دوشنبه 23 اردیبهشت 1387, 11:49 صبح
براي بدست آوردن اندازه فايل مي توني از توابع API زير استفاده كني:
Declare Function GetFileInformationByHandle Lib "kernel32.dll" (ByVal hFile As Long, lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Long

يا از اون بهتر:

Declare Function GetFileSize Lib "kernel32.dll" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long

موفق باشيد

ali_habibi1384
دوشنبه 23 اردیبهشت 1387, 11:55 صبح
اینو توی general بذارید


Private Const OPEN_EXISTING = 3
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type BY_HANDLE_FILE_INFORMATION
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
dwVolumeSerialNumber As Long
nFileSizeHigh As Long
nFileSizeLow As Long
nNumberOfLinks As Long
nFileIndexHigh As Long
nFileIndexLow As Long
End Type
Private Declare Function GetFileInformationByHandle Lib "kernel32" (ByVal HFILE As Long, lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

اینم تابعش:



Dim HFILE As Long, FileInfo As BY_HANDLE_FILE_INFORMATION
With cd1
.DialogTitle = "ÇäÊÎÇÈ ÝÇíá"
.CancelError = False
.Filter = "Wave Files (*.wav)|*.wav"
.ShowOpen
If Len(.FileName) = 0 Then
Exit Sub
End If
sfile = .FileName
End With

txtaddress.Text = sfile
HFILE = CreateFile(cd1.FileName, 0, 0, ByVal 0&, OPEN_EXISTING, 0, ByVal 0&)
GetFileInformationByHandle HFILE, FileInfo
txtlength.Text = Int(Val(FileInfo.nFileSizeHigh * 2 ^ 32 + FileInfo.nFileSizeLow)

CloseHandle HFILE

tehran2009
دوشنبه 23 اردیبهشت 1387, 12:31 عصر
آقا علی ممنون
اگه ممکنه با پروژهای vb جوابمو بدین ....
هر چند مزاحمتون هم شدم ...

مهران رسا
دوشنبه 23 اردیبهشت 1387, 18:09 عصر
دوستان عزیز من یه برنامه نوشتم که فقط گیر یه قسمتی ازش هستم که تمومش کنم ممنون میشم کمکم کنید . سوال من اینه
مثلاَ من توی درایو c یک فایل test.txt دارم ( c:/test.txt ) حالا می خوام برایه برنامم این تعریف کنم که وقتی حجم فایل test.txt به 6 کیلو بایت رسید اونو توی قسمت مسیج ارسال ایمیل خالی کنه بعد ارسال کنه و همین کارو همینجوری تکرار کنه . یه عکسی هم برای مثال درست کردم که ببینید منظورمو بهتر بفهمید .


سلام .

ما فقط می تونیم بهت بگیم که چه طوری به ساده ترین روش حجم یک فایل رو بر اساس بایت به دست بیاری ...
دیگه بقیه اش یکسری شرط ساده هستند که خودت هم از پس اونها بر میای ...

ساده ترین روش برای بدست آوردن حجم یک فایل (بر حسب Byte) .



Label1.Caption=FileLen("C:\File.txt")

tehran2009
سه شنبه 24 اردیبهشت 1387, 11:31 صبح
ببینید منم اینارو دارم اما می خوام کاری که اول تایپیک گفتم انجام بدم ...

ممنون میشم کمک کنین ...

Mbt925
سه شنبه 24 اردیبهشت 1387, 11:54 صبح
ویروس نویسی (اونم همچین ویروس های آماتوری) ، بدترین کاریه که شما در وضعیت فعلیتون در حال انجامش هستید.

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

-----------
هر وقت داده ای رو توی فایل نوشتین ، حجمش رو چک کنید ، اگه به مقدار موردنظر رسیده بود ایمیلش کنید.

Mansoor2fx
سه شنبه 24 اردیبهشت 1387, 13:03 عصر
از FSO (FileSystemObject) هم می تونی استفاده کنی !

tehran2009
سه شنبه 24 اردیبهشت 1387, 15:51 عصر
نه عزیز فقط واسه تجربه می خوام .....
می خوام یاد بگیرمش .....
آخه همشو تمومه و فقط اینجا گیر کردم ...
حالا ممنون میشم سورس کاملی در اختیارم قرار بدی

مهران رسا
سه شنبه 24 اردیبهشت 1387, 17:48 عصر
نه عزیز فقط واسه تجربه می خوام .....
می خوام یاد بگیرمش .....
آخه همشو تمومه و فقط اینجا گیر کردم ...
حالا ممنون میشم سورس کاملی در اختیارم قرار بدی


دوستان این همه نمونه واسه شما قرار دادن . دیگه سورس کامل چیو می خوای ؟؟؟

tehran2009
سه شنبه 24 اردیبهشت 1387, 18:18 عصر
شما سوال منو یه بار بخونین ( اولین تایپکی که من زدم در اینجا ) ببینید که این قسمتی از سوال منه .
منظورم اینه که سورسو تو پروژه های وبی برام قرار بدین که بهتر متوجه بشم .