I have this method:
private List<string> offline(string targetDirectory)
{
if (targetDirectory.Contains("http://"))
{
MessageBox.Show("true");
}
DirectoryInfo di = new DirectoryInfo(targetDirectory);
List<string> directories = new List<string>();
try
{
string[] dirs = Directory.GetDirectories(targetDirectory,"*.*",SearchOption.TopDirectoryOnly);
for (int i = 0; i < dirs.Length; i++)
{
string t = "http://" + dirs[i];
directories.Add(t);
}
}
catch
{
MessageBox.Show("hgjghj");
}
return directories;
}
This is the part:
if (targetDirectory.Contains("http://"))
{
MessageBox.Show("true");
}
I’m getting a directory which give me all the directories in this directory and I’m adding to each directory the string "http://".
The problem is when next time a directory is getting to the function its coming with "http://"
For example: http://c:\\ or http://c:\\windows
And then the line
DirectoryInfo di = new DirectoryInfo(targetDirectory); // throws exception.
So I want that each time a directory is getting to the function to check if it starts with "http://" in the beginning, strip the "http://" part, get all the directories, and then add to each directory "http://" like now.
How can I remove "http://"?
I would be stricter than using
Contains– I’d useStartsWith, and thenSubstring:Or wrap it in a helper method:
It’s not clear to me why you’re putting the
http://as a prefix anyway though, to be honest. I can’t see how you’d expect a directory name prefixed withhttp://to be a valid URL. Perhaps if you could explain why you’re doing it, we could suggest a better approach.(Also, I really hope you don’t have a try/catch block like that in your real code, and that normally you follow .NET naming conventions.)