in powershell/CompiledHelpers/VstsTaskSdk.cs [120:161]
public static extern SafeFindHandle FindFirstFile(
[MarshalAs(UnmanagedType.LPTStr)]
string fileName,
[In, Out] FindData findFileData
);
//HANDLE WINAPI FindFirstFileEx(
// _In_ LPCTSTR lpFileName,
// _In_ FINDEX_INFO_LEVELS fInfoLevelId,
// _Out_ LPVOID lpFindFileData,
// _In_ FINDEX_SEARCH_OPS fSearchOp,
// _Reserved_ LPVOID lpSearchFilter,
// _In_ DWORD dwAdditionalFlags
//);
[DllImport(Kernel32Dll, CharSet = CharSet.Unicode, BestFitMapping = false, ThrowOnUnmappableChar = true, SetLastError = true)]
public static extern SafeFindHandle FindFirstFileEx(
[MarshalAs(UnmanagedType.LPTStr)]
string fileName,
[In] FindInfoLevel fInfoLevelId,
[In, Out] FindData lpFindFileData,
[In] FindSearchOps fSearchOp,
IntPtr lpSearchFilter,
[In] FindFlags dwAdditionalFlags
);
[DllImport(Kernel32Dll, CharSet = CharSet.Unicode, BestFitMapping = false, ThrowOnUnmappableChar = true, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool FindNextFile(SafeFindHandle hFindFile, [In, Out] FindData lpFindFileData);
[DllImport(Kernel32Dll, CharSet = CharSet.Unicode, BestFitMapping = false, ThrowOnUnmappableChar = true, SetLastError = true)]
public static extern int GetFileAttributes(string lpFileName);
[DllImport(Kernel32Dll, CharSet = CharSet.Unicode, BestFitMapping = false, ThrowOnUnmappableChar = true, SetLastError = true)]
public static extern uint GetFullPathName(
[MarshalAs(UnmanagedType.LPTStr)]
string lpFileName,
uint nBufferLength,
[Out]
System.Text.StringBuilder lpBuffer,
System.Text.StringBuilder lpFilePart
);
}
//for mapping to the WIN32_FIND_DATA native structure
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public sealed class FindData
{