Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CurrentDirectoryCore

string System.Environment.CurrentDirectoryCore
staticgetsetprivate

Definition at line 302 of file Environment.cs.

303 {
304 get
305 {
306 Span<char> initialBuffer = stackalloc char[260];
307 ValueStringBuilder outputBuilder = new ValueStringBuilder(initialBuffer);
308 uint currentDirectory;
309 while ((currentDirectory = Interop.Kernel32.GetCurrentDirectory((uint)outputBuilder.Capacity, ref outputBuilder.GetPinnableReference())) > outputBuilder.Capacity)
310 {
311 outputBuilder.EnsureCapacity((int)currentDirectory);
312 }
313 if (currentDirectory == 0)
314 {
316 }
317 outputBuilder.Length = (int)currentDirectory;
318 if (outputBuilder.AsSpan().Contains('~'))
319 {
320 string result = PathHelper.TryExpandShortFileName(ref outputBuilder, null);
321 outputBuilder.Dispose();
322 return result;
323 }
324 return outputBuilder.ToString();
325 }
326 set
327 {
329 {
330 int lastPInvokeError = Marshal.GetLastPInvokeError();
331 throw Win32Marshal.GetExceptionForWin32Error((lastPInvokeError == 2) ? 3 : lastPInvokeError, value);
332 }
333 }
334 }
static bool SetCurrentDirectory(string path)
static uint GetCurrentDirectory(uint nBufferLength, ref char lpBuffer)
static string TryExpandShortFileName(ref ValueStringBuilder outputBuilder, string originalPath)
Definition PathHelper.cs:64
static Exception GetExceptionForLastWin32Error(string path="")
static Exception GetExceptionForWin32Error(int errorCode, string path="")
ReadOnlySpan< char > AsSpan(bool terminate)