[DllImport("kernel32.dll")]
static extern uint GetCurrentDirectory(uint nBufferLength,
[Out] StringBuilder lpBuffer);
None.
None.
Please add some!
/*************************
I M P O R T A N T N O T E
* This sample uses: GetCurrentDirectoryW *
*************************/
//Declaration
public const uint MAX_DEEP_PATH = 32767;
[DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
static extern uint GetCurrentDirectoryW(uint nBufferLength, StringBuilder lpBuffer);
//Usage
StringBuilder nameBuffer = new StringBuilder((int)MAX_DEEP_PATH + 3);
//I need 3 extra '\x0' chartacters at the end of the buffer
//You need to be able to hold up to 32767 chars if you plan to recurse deep folder structures
//when you use FindFirstFileW, FindNextFileW and DeleteFileW
uint folderNameLength = GetCurrentDirectory(MAX_DEEP_PATH, nameBuffer);
if (folderNameLength == 0)
{
int lastError = Marshal.GetLastWin32Error();
Console.WriteLine("Failed to get initial working directory; error = '{0}'", lastError);
return;
}
if (folderNameLength > MAX_DEEP_PATH)
{
Console.WriteLine("Failed to get initial working directory; allocated buffer is shorter than required: '{0}'<'{1}'", MAX_DEEP_PATH, folderNameLength);
return;
}
Directory.GetCurrentDirectory