View Full Version : بدست آوردن حجم فایل
  
tehran2009
دوشنبه 23 اردیبهشت 1387, 12:39 عصر
دوستان عزیز من یه برنامه نوشتم که فقط گیر یه قسمتی ازش هستم که تمومش کنم ممنون میشم کمکم کنید . سوال من اینه 
مثلاَ من توی درایو c یک فایل test.txt دارم ( c:/test.txt ) حالا می خوام برایه برنامم این تعریف کنم که وقتی حجم فایل test.txt به 6 کیلو بایت رسید اونو توی قسمت مسیج ارسال ایمیل خالی کنه بعد ارسال کنه و همین کارو همینجوری تکرار کنه . یه عکسی هم برای مثال درست کردم که ببینید منظورمو بهتر بفهمید .
zacaria
دوشنبه 23 اردیبهشت 1387, 12: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, 12: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, 13:31 عصر
آقا علی ممنون 
اگه ممکنه با پروژهای vb جوابمو بدین ....
هر چند مزاحمتون هم شدم ...
مهران رسا
دوشنبه 23 اردیبهشت 1387, 19:09 عصر
دوستان عزیز من یه برنامه نوشتم که فقط گیر یه قسمتی ازش هستم که تمومش کنم ممنون میشم کمکم کنید . سوال من اینه 
مثلاَ من توی درایو c یک فایل test.txt دارم ( c:/test.txt ) حالا می خوام برایه برنامم این تعریف کنم که وقتی حجم فایل test.txt به 6 کیلو بایت رسید اونو توی قسمت مسیج ارسال ایمیل خالی کنه بعد ارسال کنه و همین کارو همینجوری تکرار کنه . یه عکسی هم برای مثال درست کردم که ببینید منظورمو بهتر بفهمید .
سلام .
ما فقط می تونیم بهت بگیم که چه طوری به ساده ترین روش حجم یک فایل رو بر اساس بایت به دست  بیاری ... 
دیگه بقیه اش یکسری شرط ساده هستند که خودت هم از پس اونها بر میای ...
ساده ترین روش برای بدست آوردن حجم یک فایل (بر حسب Byte) . 
Label1.Caption=FileLen("C:\File.txt")
tehran2009
سه شنبه 24 اردیبهشت 1387, 12:31 عصر
ببینید منم اینارو دارم اما می خوام کاری که اول تایپیک گفتم انجام بدم ...
 
ممنون میشم کمک کنین ...
Mbt925
سه شنبه 24 اردیبهشت 1387, 12:54 عصر
ویروس نویسی  (اونم همچین ویروس های آماتوری) ، بدترین کاریه که شما در وضعیت فعلیتون در حال انجامش هستید.
شما الان باید بشینید و مبانی رو سریعتر یاد بگیرید و شروع به نوشتن برنامه های کاربردی بکنید.
-----------
هر وقت داده ای رو توی فایل نوشتین ، حجمش رو چک کنید ، اگه به مقدار موردنظر رسیده بود ایمیلش کنید.
Mansoor2fx
سه شنبه 24 اردیبهشت 1387, 14:03 عصر
از FSO (FileSystemObject) هم می تونی استفاده کنی !
tehran2009
سه شنبه 24 اردیبهشت 1387, 16:51 عصر
نه عزیز فقط واسه تجربه می خوام .....
می خوام یاد بگیرمش ..... 
آخه همشو تمومه و فقط اینجا گیر کردم ...
حالا ممنون میشم سورس کاملی در اختیارم قرار بدی
مهران رسا
سه شنبه 24 اردیبهشت 1387, 18:48 عصر
نه عزیز فقط واسه تجربه می خوام .....
می خوام یاد بگیرمش ..... 
آخه همشو تمومه و فقط اینجا گیر کردم ...
حالا ممنون میشم سورس کاملی در اختیارم قرار بدی
دوستان این همه نمونه واسه شما قرار دادن . دیگه سورس کامل چیو می خوای ؟؟؟
tehran2009
سه شنبه 24 اردیبهشت 1387, 19:18 عصر
شما سوال منو یه بار بخونین  ( اولین تایپکی که من زدم در اینجا ) ببینید که این قسمتی از سوال منه .
منظورم اینه که سورسو تو پروژه های وبی برام قرار بدین که بهتر متوجه بشم .
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.