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
  • 338
    Views
  • 1
    Participants
Last reply from:
hase0278

Trending Topics

Online now

Members online
1,239
Guests online
1,420
Total visitors
2,659

Forum statistics

Threads
2,293,320
Posts
29,083,218
Members
1,208,751
Latest member
samisme888
Back
Top