Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Load tất cả các file trong 1 folder

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    13

    Red face Load tất cả các file trong 1 folder

    mình có đoạn code sau :
    PHP Code:
    private void openToolStripMenuItem_Click_1(object senderEventArgs e)
            {
                if (
    folderBrowserDialog1.ShowDialog() == DialogResult.OK)
                {
                    foreach (var 
    imageFile in Directory.GetFiles(folderBrowserDialog1.SelectedPath))
                    {
                        if (
    CheckImage(imageFile) == true)
                        {
                            foreach (
    string c in openFileDialog1.FileNames)
                            {
                                
    imageList1.Images.Add(Image.FromFile(c));
                            }
                            
    pictureBox1.Image imageList1.Images[0];
                        }
                    }
                }
            }

            private 
    bool CheckImage(string name)
            {
                
    name "*.jpg";
                if (
    openFileDialog1.Filter.CompareTo(name) == 0)
                    return 
    true;
                return 
    false;
            } 
    mục đích là ta chọn folder rùi load các file có dạng "*.jpg" vô imageList.mình chạy ko bị lỗi,nhunwng ko load hình được.Mấy bác xem thử sai chỗ nào giúp mình với.Thanks............
    Đã được chỉnh sửa lần cuối bởi billle : 13-03-2009 lúc 08:46 PM.

  2. #2
    Ngày gia nhập
    04 2007
    Bài viết
    134

    Code:
            private bool CheckImage(string name)
            {
                name = "*.jpg";
                if (openFileDialog1.Filter.CompareTo(name) == 0)
                    return true;
                return false;
            }
    Chắc là hàm này sai, thử sửa nó thành

    Code:
            private bool CheckImage(string name)
            {
                    return true;
            }

  3. #3
    Ngày gia nhập
    10 2007
    Bài viết
    37

    Hàm trên không đúng vì bạn đã set lại filePath thành name = "*.jpg";
    Trích dẫn Nguyên bản được gửi bởi CSharp
    //mình sửa lại name => filePath
    private bool CheckImage(string filePath)
    {
    return filePath.EndsWith(".jpg", StringComparison.CurrentCultureIgnoreCase);
    }

  4. #4
    Ngày gia nhập
    09 2008
    Nơi ở
    Ở nhà chứ đâu... nhìn cái gì?!?!
    Bài viết
    218

    Do hàm static Directory.GetFiles(string path) nó trả về một đối tượng kiểu string[] (bạn dùng var cho C# 3.0 - nên mình không rành). Bạn nên sửa var thành string[] nhé .

    Hàm CheckImage(string name) của bạn về mặt ý tưởng thì không sai, nhưng về mạt kỹ thuật thì có vấn đề. Bạn đã gán nhầm name="*.jpg". nên khi bạn CompareTo(path) thì tất nhiên "*.jpg" sẽ = "*.jpg" thôi .

    Theo mình bạn nên sửa lại như sau:

    Visual C# Code:
    1. DirectoryInfo directoryInfo = new DirectoryInfo(path);
    2.  
    3. FileInfo[] fileInfos = directoryInfo.GetFiles();
    4.  
    5. foreach (FileInfo file in fileInfos)
    6.         if (file.Extension.Equal(".jpg")) // dòng này thay thế cho hàm CheckImage(string name) của bạn đó; không cần thêm == true
    7.             yourImageList.Images.Add(Image.FromFile(file.FullName));
    8.  
    9. // tiếp tục các đoạn code dở dang của bạn...


    Thấy sự lợi hại của DirectoryInfo và FileInfo chưa

    Đính chính:
    Bạn billle dùng folderBrowserDialog1.SelectedPath để lấy đường dẫn của folder chứa file cần tìm, nhưng khi foreach bạn lại in openFileDialog1.FileNames :O , folderBrowserDialog1 != openFileDialog1, do đó khi Add() sẽ lấy trong một tập hợp rỗng là openFileDialog1.FileNames nên không có gì trong ImageList hết. Bạn nên bỏ dòng foreach (string c in openFileDialog1.FileNames) thì sẽ chạy nhưng ImageList lúc này sẽ chứa đủ loại file, bạn nên sửa theo cách của mình hoặc của bạn ntcuong sẽ ổn.


    Chúc bạn thành công

    PS:
    +Bạn Lugia: nếu bạn cho hàm CheckImage(string name) chỉ trả về true thì bài tập của bạn billle càng tệ hơn lúc đầu (chạy sẽ báo lỗi, do nó add tât cả các file vào ImageList).

    Nếu dùng nhiều về IO bạn bille nên tham khảo tất cả các đối tượng trong System.IO để dùng hợp lý nhé
    Đã được chỉnh sửa lần cuối bởi OWickedFox : 14-03-2009 lúc 12:46 AM. Lý do: đính chính lại
    Quá nản cái viễn cảnh hiện tại. Nhiều "thanh niên" sống "ảo" quá. Thời nào rồi mà còn hỏi WinForms + ADO.NET

Các đề tài tương tự

  1. Load ổ đĩa vào ComboBox và hiển thị File/Folder ở ListView
    Gửi bởi ngoctam1011 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 21-09-2016, 03:02 AM
  2. Liệt kê danh sách các file trong cùng folder với file đang chạy ?
    Gửi bởi phucduan trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 05-10-2012, 09:03 AM
  3. Cách kiểm tra trong 1 folder có chứa 1 file hay folder khác hay không ?
    Gửi bởi nguyenkhanhminh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 23-05-2011, 11:00 AM
  4. Bảo vệ Folder - File trong lập trình C#???
    Gửi bởi tientaitu trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 15-01-2010, 09:47 PM
  5. load image từ folder lên listview trong c#???
    Gửi bởi DuyCanh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 17-10-2009, 03:00 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn