نمایش نتایج 1 تا 9 از 9

نام تاپیک: شبیه سازی کپیه ویندوز

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    مشهد
    پست
    173

    Post شبیه سازی کپیه ویندوز

    سلام من میخوام با استفاده از دات نت کپی کردن ویندوز رو شبیه سازی کنم .دوستان راهنمایی کردند.برای کپی کردن یک فایل تابع زیر رو راهنمایی کردند:

    My
    .Computer.FileSystem.CopyFile(s1, S2, True)

    که S1مسیر فایل مبدآ با نامش هست وS2مسیر فایل مقصد(پیست شده) با نامش هست .حالا قصد داریم خاصیت MAXIMOMاز PROGRESS BAR رو با استفاده از حجم فایل تنظیم کنیم , بطوریکه متناسب با حجم فایلی که پیست میشه ,PROGRESS BAR هم پر شه .ممنون میشم کسی کمکم کنه.

  2. #2

    نقل قول: شبیه سازی کپیه ویندوز

    اول بايد حجم فايل كپی شده رو به دست بياری ( يعنی حجم كل )، و مقدار Max نوار پيشرفت رو برابر حجم كل قرار بدی. هنگام پيست شدن فايلی مخفی ( فكر كنم ) درست ميشه. شما بايد حجم اون فايل رو به دست بياريد و بعد مقدار Vlaue ی نوار پيشرفت رو برابر حجم اون فايل هه قرار بديد.

  3. #3
    کاربر دائمی آواتار reza6384
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران - شهرک ژاندارمری
    سن
    41
    پست
    740

    نقل قول: شبیه سازی کپیه ویندوز

    نقل قول نوشته شده توسط Armin060 مشاهده تاپیک
    اول بايد حجم فايل كپی شده رو به دست بياری ( يعنی حجم كل )، و مقدار Max نوار پيشرفت رو برابر حجم كل قرار بدی. هنگام پيست شدن فايلی مخفی ( فكر كنم ) درست ميشه. شما بايد حجم اون فايل رو به دست بياريد و بعد مقدار Vlaue ی نوار پيشرفت رو برابر حجم اون فايل هه قرار بديد.
    سلام.
    شما تقریبا درست میگی، فقط کی باید Value مربوط به Progress بار رو اضافه کنیم. اینجوری که شما میگین اولش مقداره صفره، بعد فایل کپی میشه ، بعد یهو میشه Maximum.

  4. #4

    نقل قول: شبیه سازی کپیه ویندوز

    نه...نه....نه.....نه.....نه....

    بابا من اون فايل كامل كپی شده رو نميگم. وقتی يه فايل داره كپی ميشه، ويندوز يه فايل ديگه به صورت مخفی ميسازه و اطلاعات رو روی اون ذخيره ميكنه و بعد .... ما بايد اون فايل مخفی يه رو حجمش رو به دست بياريم.

    البته يه راه ديگه هم هست كه فكر كنم راحت باشه. با استفاده از File در IO.

  5. #5
    کاربر دائمی
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    مشهد
    پست
    173

    Post نقل قول: شبیه سازی کپیه ویندوز

    شما درست میگیدکد روبرو چهار مشخصه از فایل رو بر میگردونه به information

    information = My.Computer.FileSystem.GetFileInfo("s1")
    ProgressBar1.Maximum = information.Length

    که یکی حجم فایله متاسفانه حجم رو به بیت میده مثلا 48 مگابایت رو 48000000بیت میده که میبینید بعد از پیست کامل فایل تازه یک ردیف از پروگرس بار پر شده .
    در ثانی ظاهرا کد بالا فایلهای کمتر از 1 مگابایت رو پیدا نمیکنه.
    اگه مشکلمو حل کنه کمک زیادی کزده.
    آخرین ویرایش به وسیله mehran5 : یک شنبه 05 آبان 1387 در 08:56 صبح دلیل: ناقص بودن

  6. #6

    نقل قول: شبیه سازی کپیه ویندوز

    من كه گفتم با IO كار راحتر است. چرا از My.Computer استفاده كردی؟

  7. #7
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

    نقل قول: شبیه سازی کپیه ویندوز

    سلام
    این کدی رو که میزارم فکر نمیکنم بهترین راه برای این کار باشه. ولی خوب چیزیه که به ذهن من رسیده . دوستان اگه راهها بهتری دارن بگن تا بلکه ما هم چیزی یاد بگیریم.
    Public Class Form1
    'Make new backgroundWorker
    Dim WithEvents BG As New System.ComponentModel.BackgroundWorker
    'choos source File
    Private Sub btnSource_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSource.Click
    Dim OpenDialg As New OpenFileDialog
    OpenDialg.ShowDialog()
    If Not OpenDialg.FileName.Equals(String.Empty) Then
    Me.txtSource.Text = OpenDialg.FileName
    End If
    End Sub
    'make dastination file path
    Private Sub btnDes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDes.Click
    Dim SaveDialg As New SaveFileDialog
    SaveDialg.ShowDialog()
    If Not SaveDialg.FileName.Equals(String.Empty) Then
    Me.txtDes.Text = SaveDialg.FileName
    End If
    End Sub

    Private Sub btnCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopy.Click
    BG.WorkerReportsProgress = True
    BG.RunWorkerAsync()
    End Sub
    'start copying file
    Private Sub BG_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BG.DoWork
    Try
    Dim FR As New IO.FileStream(txtSource.Text, IO.FileMode.Open)
    Dim FW As New IO.FileStream(txtDes.Text, IO.FileMode.CreateNew)
    Dim Buffer(FR.Length - 1) As Byte
    FR.Read(Buffer, 0, Buffer.Length)
    Dim a As Integer = Buffer.Length / 100
    Dim Count As Integer = 1
    For i As Integer = 0 To Buffer.Length - 1
    If i >= a And i Mod a = 0 Then
    Count += 1
    BG.ReportProgress(Count)
    End If
    FW.WriteByte(Buffer(i))
    Next
    FR.Close()
    FW.Close()
    Catch ex As Exception
    MsgBox(ex.Message)
    End Try
    End Sub
    'feedback worker progress
    Private Sub BG_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BG.ProgressChanged
    Me.ProgressBar1.Value = e.ProgressPercentage
    Me.lblStatus.Text = e.ProgressPercentage
    End Sub
    End Class

  8. #8
    کاربر دائمی
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    مشهد
    پست
    173

    نقل قول: شبیه سازی کپیه ویندوز

    ممنون -حل شد

  9. #9

    نقل قول: شبیه سازی کپیه ویندوز

    زدی تو ...

    من يكی نوشتم كه سه چهار خط بيشتر نبود. ولی خيلی كند بود. اين بهتره...ايول

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •