Метод SetCurrentDirectory
Directory.SetCurrentDirectory
меняет папку, относительно которой
открываются пути вроде abcde/12345.txt.
Текущее значение читают через
GetCurrentDirectory.
После эксперимента лучше вернуть старый
каталог. Есть SetCurrentDirectoryAsync.
Синтаксис
Directory.SetCurrentDirectory(path);
Пример
Давайте сохраним путь, перейдём в
abcde и вернёмся обратно:
using System;
using System.IO;
class Program
{
static void Main()
{
string saved = Directory.GetCurrentDirectory();
Directory.CreateDirectory("abcde");
Directory.SetCurrentDirectory("abcde");
string cwd = Directory.GetCurrentDirectory();
bool res = cwd.EndsWith("abcde");
Console.WriteLine(res);
Directory.SetCurrentDirectory(saved);
Directory.Delete("abcde");
}
}
Результат выполнения кода:
True
Пример
Давайте создадим файл уже после смены каталога относительным именем:
using System;
using System.IO;
class Program
{
static void Main()
{
string saved = Directory.GetCurrentDirectory();
Directory.CreateDirectory("abcde");
Directory.SetCurrentDirectory("abcde");
File.WriteAllText("12345.txt", "12345");
bool res = File.Exists("12345.txt");
Console.WriteLine(res);
Directory.SetCurrentDirectory(saved);
Directory.Delete("abcde", true);
}
}
Результат выполнения кода:
True
Пример
Давайте проверим, что после возврата
имя текущей папки снова не кончается на
"abcde", если мы были выше:
using System;
using System.IO;
class Program
{
static void Main()
{
string saved = Directory.GetCurrentDirectory();
Directory.CreateDirectory("abcde");
Directory.SetCurrentDirectory("abcde");
Directory.SetCurrentDirectory(saved);
string cwd = Directory.GetCurrentDirectory();
bool res = !cwd.EndsWith("abcde");
Console.WriteLine(res);
Directory.Delete("abcde");
}
}
Результат выполнения кода:
True
Смотрите также
-
метод
GetCurrentDirectory,
который читает рабочую папку -
метод
CreateDirectory,
который готовит каталог для перехода -
File,
которым пишут файл после смены каталога -
DirectoryNotFoundException,
которое бросают при неверном пути