public static Directory7[] OpenDirectory(string fullFolderName)
{
WIN32_FIND_DATA data;
var handle = DllImportCaller.lib.FindFirstFile7(fullFolderName, out data);
if (handle == -1)
{
var err = DllImportCaller.LastError().ToString();
if (err == "-2147483643")
{
throw new System.IO.IOException("Forbidden or not exist");
}
else
{
throw new Exception(err);
}
}
var list = new List <Directory7>();
list.Add(new Directory7(data, fullFolderName, true)); //add first defined "out data"
int next;
while ((next = DllImportCaller.lib.FindNextFile7(handle, out data)) != 0)
{
list.Add(new Directory7(data, System.IO.Path.Combine(fullFolderName, data.cFileName), false));//continue to add
}
var r = DllImportCaller.lib.FindClose7(handle);
return(list.ToArray());
}