What's new

Directory.GetFiles alternative

Status
Not open for further replies.

hase0278

Forum Guru
Elite
Joined
Aug 30, 2014
Posts
3,366
Reaction
3,711
Points
1,102
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.
 
Last edited:
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.

Similar threads

Back
Top