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

نام تاپیک: نمایش پیشرفت کپی فایلها با ProgressBar

  1. #1
    کاربر دائمی
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    Tehran
    پست
    453

    نمایش پیشرفت کپی فایلها با ProgressBar

    سلام دوستان

    نمایش پیشرفت کپی فایلها با ProgressBar به چه صورته؟

  2. #2
    کاربر دائمی آواتار khokhan
    تاریخ عضویت
    دی 1388
    محل زندگی
    اسکو
    پست
    2,176

    نقل قول: نمایش پیشرفت کپی فایلها با ProgressBar

    نقل قول نوشته شده توسط pesare مشاهده تاپیک
    سلام دوستان

    نمایش پیشرفت کپی فایلها با ProgressBar به چه صورته؟
    ..................................................

              using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.IO;

    namespace WindowsApplication1 {
    public partial class Form1 : Form {
    // Class to report progress
    private class UIProgress {
    public UIProgress(string name_, long bytes_, long maxbytes_) {
    name = name_; bytes = bytes_; maxbytes = maxbytes_;
    }
    public string name;
    public long bytes;
    public long maxbytes;
    }
    // Class to report exception {
    private class UIError {
    public UIError(Exception ex, string path_) {
    msg = ex.Message; path = path_; result = DialogResult.Cancel;
    }
    public string msg;
    public string path;
    public DialogResult result;
    }
    private BackgroundWorker mCopier;
    private delegate void ProgressChanged(UIProgress info);
    private delegate void CopyError(UIError err);
    private ProgressChanged OnChange;
    private CopyError OnError;

    public Form1() {
    InitializeComponent();
    mCopier = new BackgroundWorker();
    mCopier.DoWork += Copier_DoWork;
    mCopier.RunWorkerCompleted += Copier_RunWorkerCompleted;
    mCopier.WorkerSupportsCancellation = true;
    OnChange += Copier_ProgressChanged;
    OnError += Copier_Error;
    button1.Click += button1_Click;
    ChangeUI(false);
    }

    private void Copier_DoWork(object sender, DoWorkEventArgs e) {
    // Create list of files to copy
    string[] theExtensions = { "*.jpg", "*.jpeg", "*.bmp", "*.png", "*.gif" };
    List<FileInfo> files = new List<FileInfo>();
    string path = Environment.GetFolderPath(Environment.SpecialFolde r.MyDocuments);
    DirectoryInfo dir = new DirectoryInfo(path);
    long maxbytes = 0;
    foreach (string ext in theExtensions) {
    FileInfo[] folder = dir.GetFiles(ext, SearchOption.AllDirectories);
    foreach (FileInfo file in folder) {
    if ((file.Attributes & FileAttributes.Directory) != 0) continue;
    files.Add(file);
    maxbytes += file.Length;
    }
    }
    // Copy files
    long bytes = 0;
    foreach (FileInfo file in files) {
    try {
    this.BeginInvoke(OnChange, new object[] { new UIProgress(file.Name, bytes, maxbytes) });
    File.Copy(file.FullName, @"c:\temp\" + file.Name, true);
    }
    catch (Exception ex) {
    UIError err = new UIError(ex, file.FullName);
    this.Invoke(OnError, new object[] { err });
    if (err.result == DialogResult.Cancel) break;
    }
    bytes += file.Length;
    }
    }
    private void Copier_ProgressChanged(UIProgress info) {
    // Update progress
    progressBar1.Value = (int)(100.0 * info.bytes / info.maxbytes);
    label1.Text = "Copying " + info.name;
    }
    private void Copier_Error(UIError err) {
    // Error handler
    string msg = string.Format("Error copying file {0}\n{1}\nClick OK to continue copying files", err.path, err.msg);
    err.result = MessageBox.Show(msg, "Copy error", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation);
    }
    private void Copier_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
    // Operation completed, update UI
    ChangeUI(false);
    }
    private void ChangeUI(bool docopy) {
    label1.Visible = docopy;
    progressBar1.Visible = docopy;
    button1.Text = docopy ? "Cancel" : "Copy";
    label1.Text = "Starting copy...";
    progressBar1.Value = 0;
    }
    private void button1_Click(object sender, EventArgs e) {
    bool docopy = button1.Text == "Copy";
    ChangeUI(docopy);
    if (docopy) mCopier.RunWorkerAsync();
    else mCopier.CancelAsync();
    }
    }
    }

  3. #3
    کاربر دائمی
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    Tehran
    پست
    453

    نقل قول: نمایش پیشرفت کپی فایلها با ProgressBar

    نمونه پروژ هم دارید به من بدید؟
    در حقیقت من دارم یه فایل رو Extract میکنم که میخوام اون رو با ProgressBar نمایش بدم

  4. #4
    کاربر دائمی آواتار khokhan
    تاریخ عضویت
    دی 1388
    محل زندگی
    اسکو
    پست
    2,176

    نقل قول: نمایش پیشرفت کپی فایلها با ProgressBar

    نقل قول نوشته شده توسط pesare مشاهده تاپیک
    نمونه پروژ هم دارید به من بدید؟
    در حقیقت من دارم یه فایل رو Extract میکنم که میخوام اون رو با ProgressBar نمایش بدم
    این لینک رو ببین http://www.codeproject.com/Articles/...hell-API-and-C

  5. #5

    نقل قول: نمایش پیشرفت کپی فایلها با ProgressBar

    نقل قول نوشته شده توسط pesare مشاهده تاپیک
    سلام دوستان

    نمایش پیشرفت کپی فایلها با ProgressBar به چه صورته؟


    progressBar1.Maximum =100;
    foreach (FileInfo tempfile in files)
    {
    progressBar1.PerformStep();
    }

    progressBar1.Value =0;


  6. #6
    کاربر دائمی
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    Tehran
    پست
    453

    نقل قول: نمایش پیشرفت کپی فایلها با ProgressBar

    خطا داره

    e.png

  7. #7
    کاربر دائمی
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    Tehran
    پست
    453

    نقل قول: نمایش پیشرفت کپی فایلها با ProgressBar

    files رو چطوری بایند کنم به فایل zip

  8. #8
    کاربر دائمی
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    Tehran
    پست
    453

    نقل قول: نمایش پیشرفت کپی فایلها با ProgressBar

    نقل قول نوشته شده توسط soleimani.em مشاهده تاپیک




    progressBar1.Maximum =100;
    foreach (FileInfo tempfile in files)
    {
    progressBar1.PerformStep();
    }

    progressBar1.Value =0;



    files رو چطوری بایند کنم به فایل zip

  9. #9
    کاربر دائمی
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    Tehran
    پست
    453

    نقل قول: نمایش پیشرفت کپی فایلها با ProgressBar

    با این کدها ProgressBar تا کمتر از نصف میاد

    string folderPath = Application.StartupPath;         
    string zipFile = Application.StartupPath + @"\test.zip";


    if (!File.Exists(zipFile))
    throw new FileNotFoundException();


    if (!Directory.Exists(folderPath))
    Directory.CreateDirectory(folderPath);


    Shell32.Shell objShell = new Shell32.Shell();
    Shell32.Folder destinationFolder = objShell.NameSpace(folderPath);
    Shell32.Folder sourceFile = objShell.NameSpace(zipFile);


    foreach (var file in sourceFile.Items())
    {


    destinationFolder.CopyHere(file, 4 | 16);
    progressBar1.PerformStep();
    }


    progressBar1.Value = 0;
    }

  10. #10
    کاربر دائمی آواتار shahryari
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    آذربايجان
    سن
    40
    پست
    1,237

    نقل قول: نمایش پیشرفت کپی فایلها با ProgressBar

    اینجا یه نمونه گذاشتم
    http://www.w3-farsi.com/%DA%A9%D9%BE...6%D8%B9%DB%8C/

تاپیک های مشابه

  1. آموزش نمایش میزان کپی شدن فایل با ProgressBar در دلفی
    نوشته شده توسط راحله سعادتی در بخش برنامه نویسی در Delphi
    پاسخ: 1
    آخرین پست: چهارشنبه 09 اسفند 1402, 21:13 عصر
  2. سوال: نحوه نمایش پیشرفت کپی فایل با پروگرس بار
    نوشته شده توسط esafb52 در بخش C#‎‎
    پاسخ: 6
    آخرین پست: سه شنبه 23 مهر 1392, 14:04 عصر
  3. نمایش پیشرفت جستجوی LINQ بوسیله Progressbar
    نوشته شده توسط 13601360 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: پنج شنبه 09 خرداد 1392, 20:16 عصر
  4. نمایش میزان کپی شدن فایل با ProgressBar در دلفی
    نوشته شده توسط Laia2005 در بخش برنامه نویسی در Delphi
    پاسخ: 1
    آخرین پست: سه شنبه 29 فروردین 1385, 13:50 عصر
  5. نمایش پیشرفت کار با Progressbar
    نوشته شده توسط Amir Taghavi در بخش VB.NET
    پاسخ: 3
    آخرین پست: چهارشنبه 02 آذر 1384, 19:33 عصر

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

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