Browse Source

Workrd around a bug that occured when searching for a *.{three letter extension} file where you would get *.ext*.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.1@2520 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Justin Dearing 18 years ago
parent
commit
83b7d119d9
  1. 12
      src/Main/Core/Project/Src/Services/FileUtility/FileUtility.cs

12
src/Main/Core/Project/Src/Services/FileUtility/FileUtility.cs

@ -265,12 +265,12 @@ namespace ICSharpCode.Core @@ -265,12 +265,12 @@ namespace ICSharpCode.Core
public static List<string> SearchDirectory(string directory, string filemask, bool searchSubdirectories)
{
return SearchDirectory(directory, filemask, searchSubdirectories, false);
return SearchDirectory(directory, filemask, searchSubdirectories, true);
}
public static List<string> SearchDirectory(string directory, string filemask)
{
return SearchDirectory(directory, filemask, true, false);
return SearchDirectory(directory, filemask, true, true);
}
/// <summary>
@ -283,11 +283,19 @@ namespace ICSharpCode.Core @@ -283,11 +283,19 @@ namespace ICSharpCode.Core
/// </summary>
static void SearchDirectory(string directory, string filemask, List<string> collection, bool searchSubdirectories, bool ignoreHidden)
{
// If Directory.GetFiles() searches the 8.3 name as well as the full name so if the filemask is
// "*.xpt" it will return "Template.xpt~"
bool isExtMatch = Regex.IsMatch(filemask, @"^\*\..{3}$");
string ext = null;
string[] file = Directory.GetFiles(directory, filemask);
if (isExtMatch) ext = filemask.Remove(0,1);
foreach (string f in file) {
if (ignoreHidden && (File.GetAttributes(f) & FileAttributes.Hidden) == FileAttributes.Hidden) {
continue;
}
if (isExtMatch && Path.GetExtension(f) != ext) continue;
collection.Add(f);
}

Loading…
Cancel
Save