C# Get Directories runs slow
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
foreach (string directory in Directory.GetDirectories(SearchDirectory, "*",SearchOption.TopDirectoryOnly)
//This is slow i have many files/directories here.
i Search through many directories checking textfiles for small amounts of information and the code works fine i just would like to be able to loop through all the directories with a progress bar of some sort that is not lagging the program does not seem to keep up with Directory.GetDirectories. Thanks in advance
c# performance text-files
|
show 9 more comments
foreach (string directory in Directory.GetDirectories(SearchDirectory, "*",SearchOption.TopDirectoryOnly)
//This is slow i have many files/directories here.
i Search through many directories checking textfiles for small amounts of information and the code works fine i just would like to be able to loop through all the directories with a progress bar of some sort that is not lagging the program does not seem to keep up with Directory.GetDirectories. Thanks in advance
c# performance text-files
8
You can useDirectory.EnumerateDirectories
to process one after the other instead of pre-loading all.
– Rango
Nov 15 '18 at 14:17
1
@TimSchmelter That wouldn't help with having a progress bar though.
– DavidG
Nov 15 '18 at 14:21
@Adam Is your problem that callingGetDirectories
is slow or that your processing of each one takes time and that's why you want a progress bar?
– DavidG
Nov 15 '18 at 14:23
progressbar.Invoke a change in value on a progress bar. Calculate a percent based on the number of directories. WinForms or WPF should probably be specified.
– kenny
Nov 15 '18 at 14:24
1
You would need something like a BackgroundWorker to thread the UI interface. There are numerous ways to thread a UI, theBackgroundWorker
is just one of the easiest to implement in my opinion. Here's a tutorial on how to use it
– Chris
Nov 15 '18 at 14:26
|
show 9 more comments
foreach (string directory in Directory.GetDirectories(SearchDirectory, "*",SearchOption.TopDirectoryOnly)
//This is slow i have many files/directories here.
i Search through many directories checking textfiles for small amounts of information and the code works fine i just would like to be able to loop through all the directories with a progress bar of some sort that is not lagging the program does not seem to keep up with Directory.GetDirectories. Thanks in advance
c# performance text-files
foreach (string directory in Directory.GetDirectories(SearchDirectory, "*",SearchOption.TopDirectoryOnly)
//This is slow i have many files/directories here.
i Search through many directories checking textfiles for small amounts of information and the code works fine i just would like to be able to loop through all the directories with a progress bar of some sort that is not lagging the program does not seem to keep up with Directory.GetDirectories. Thanks in advance
c# performance text-files
c# performance text-files
asked Nov 15 '18 at 14:15
Adam StrobelAdam Strobel
3312
3312
8
You can useDirectory.EnumerateDirectories
to process one after the other instead of pre-loading all.
– Rango
Nov 15 '18 at 14:17
1
@TimSchmelter That wouldn't help with having a progress bar though.
– DavidG
Nov 15 '18 at 14:21
@Adam Is your problem that callingGetDirectories
is slow or that your processing of each one takes time and that's why you want a progress bar?
– DavidG
Nov 15 '18 at 14:23
progressbar.Invoke a change in value on a progress bar. Calculate a percent based on the number of directories. WinForms or WPF should probably be specified.
– kenny
Nov 15 '18 at 14:24
1
You would need something like a BackgroundWorker to thread the UI interface. There are numerous ways to thread a UI, theBackgroundWorker
is just one of the easiest to implement in my opinion. Here's a tutorial on how to use it
– Chris
Nov 15 '18 at 14:26
|
show 9 more comments
8
You can useDirectory.EnumerateDirectories
to process one after the other instead of pre-loading all.
– Rango
Nov 15 '18 at 14:17
1
@TimSchmelter That wouldn't help with having a progress bar though.
– DavidG
Nov 15 '18 at 14:21
@Adam Is your problem that callingGetDirectories
is slow or that your processing of each one takes time and that's why you want a progress bar?
– DavidG
Nov 15 '18 at 14:23
progressbar.Invoke a change in value on a progress bar. Calculate a percent based on the number of directories. WinForms or WPF should probably be specified.
– kenny
Nov 15 '18 at 14:24
1
You would need something like a BackgroundWorker to thread the UI interface. There are numerous ways to thread a UI, theBackgroundWorker
is just one of the easiest to implement in my opinion. Here's a tutorial on how to use it
– Chris
Nov 15 '18 at 14:26
8
8
You can use
Directory.EnumerateDirectories
to process one after the other instead of pre-loading all.– Rango
Nov 15 '18 at 14:17
You can use
Directory.EnumerateDirectories
to process one after the other instead of pre-loading all.– Rango
Nov 15 '18 at 14:17
1
1
@TimSchmelter That wouldn't help with having a progress bar though.
– DavidG
Nov 15 '18 at 14:21
@TimSchmelter That wouldn't help with having a progress bar though.
– DavidG
Nov 15 '18 at 14:21
@Adam Is your problem that calling
GetDirectories
is slow or that your processing of each one takes time and that's why you want a progress bar?– DavidG
Nov 15 '18 at 14:23
@Adam Is your problem that calling
GetDirectories
is slow or that your processing of each one takes time and that's why you want a progress bar?– DavidG
Nov 15 '18 at 14:23
progressbar.Invoke a change in value on a progress bar. Calculate a percent based on the number of directories. WinForms or WPF should probably be specified.
– kenny
Nov 15 '18 at 14:24
progressbar.Invoke a change in value on a progress bar. Calculate a percent based on the number of directories. WinForms or WPF should probably be specified.
– kenny
Nov 15 '18 at 14:24
1
1
You would need something like a BackgroundWorker to thread the UI interface. There are numerous ways to thread a UI, the
BackgroundWorker
is just one of the easiest to implement in my opinion. Here's a tutorial on how to use it– Chris
Nov 15 '18 at 14:26
You would need something like a BackgroundWorker to thread the UI interface. There are numerous ways to thread a UI, the
BackgroundWorker
is just one of the easiest to implement in my opinion. Here's a tutorial on how to use it– Chris
Nov 15 '18 at 14:26
|
show 9 more comments
1 Answer
1
active
oldest
votes
Directory.EnumerateDirectories Helped me enough with what i was trying to accomplish it allowed for a progress bar instead of GetDirectories.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53321407%2fc-sharp-get-directories-runs-slow%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Directory.EnumerateDirectories Helped me enough with what i was trying to accomplish it allowed for a progress bar instead of GetDirectories.
add a comment |
Directory.EnumerateDirectories Helped me enough with what i was trying to accomplish it allowed for a progress bar instead of GetDirectories.
add a comment |
Directory.EnumerateDirectories Helped me enough with what i was trying to accomplish it allowed for a progress bar instead of GetDirectories.
Directory.EnumerateDirectories Helped me enough with what i was trying to accomplish it allowed for a progress bar instead of GetDirectories.
answered Nov 27 '18 at 18:01
Adam StrobelAdam Strobel
3312
3312
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53321407%2fc-sharp-get-directories-runs-slow%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
8
You can use
Directory.EnumerateDirectories
to process one after the other instead of pre-loading all.– Rango
Nov 15 '18 at 14:17
1
@TimSchmelter That wouldn't help with having a progress bar though.
– DavidG
Nov 15 '18 at 14:21
@Adam Is your problem that calling
GetDirectories
is slow or that your processing of each one takes time and that's why you want a progress bar?– DavidG
Nov 15 '18 at 14:23
progressbar.Invoke a change in value on a progress bar. Calculate a percent based on the number of directories. WinForms or WPF should probably be specified.
– kenny
Nov 15 '18 at 14:24
1
You would need something like a BackgroundWorker to thread the UI interface. There are numerous ways to thread a UI, the
BackgroundWorker
is just one of the easiest to implement in my opinion. Here's a tutorial on how to use it– Chris
Nov 15 '18 at 14:26