Directory.GetFiles alternative

Status
Not open for further replies.

hase0278

Forum Guru
Sinusubukan kong gumawa ng program na kung saan kailangan kong gamitin ang first picture na makikita niya sa folder ng inaaccess kong file as photo. So far ito yung code ko at gumagana naman.
Code:
            string[] backgroundFiles = Directory.GetFiles(path, "*.jpg", SearchOption.TopDirectoryOnly);
            try
            {
                albumPicture.Image = new Bitmap(backgroundFiles[0]);
            }
            catch (IndexOutOfRangeException)
            {
                backgroundFiles = Directory.GetFiles(path, "*.png", SearchOption.TopDirectoryOnly);
                try
                {
                    albumPicture.Image = new Bitmap(backgroundFiles[0]);
                }
                catch (IndexOutOfRangeException)
                {
                    albumPicture.Image = Properties.Resources.circles;
                }
            }
Ang tanong ko lang ay kung may mas better alternative dito na ang ginagawa ay nagsesearch for the first occurence ng picture sa isang folder ng di na gumagamit ng array kasi kapag inispam na ni user yung button to trigger this event medyo nataas consumption niya sa ram pero bumabalik agad sa dati. Ayos naman iyon kaso kailangan ko ay mas memory efficient na method kaysa rito. Sana ay may makatulong sa akin.
 
May nakita na akong method na mas efficient. reply na lang kung mayroon pang mas memory efficient dito kayong alam. Close ko itong thread for reply sa sabado:
Code:
            albumPicture.Image.Dispose(); //disposes memory used by past event trigger if event re-occured

            try
            {
                albumPicture.Image = new Bitmap(Directory.EnumerateFiles(path, "*.jpg", SearchOption.TopDirectoryOnly).First());
            }
            catch (InvalidOperationException)
            {
                try
                {
                    albumPicture.Image = new Bitmap(Directory.EnumerateFiles(path, "*.png", SearchOption.TopDirectoryOnly).First());
                }
                catch (InvalidOperationException)
                {
                    albumPicture.Image = Properties.Resources.circles;
                }
            }
 
Status
Not open for further replies.

About this Thread

  • 1
    Replies
  • 325
    Views
  • 1
    Participants
Last reply from:
hase0278

Online now

Members online
1,023
Guests online
700
Total visitors
1,723

Forum statistics

Threads
2,276,969
Posts
28,973,413
Members
1,229,670
Latest member
Hyuga000
Back
Top