/// <summary>
/// Перемещает весь каталог со всем его содержимым в новый каталог либо только файлы из текущего каталога.
/// </summary>
/// <param name="NewName">Путь, куда нужно переместить.</param>
/// <param name="onlyFiles">При значении true — перемещает только файлы текущего каталога.</param>
public void moveto(string NewName, bool onlyFiles)
{
if (!SDirectory.Exists(dname) & dname.Length <= 260 & NewName.Length <= 260)//проверка на существование директории, корректности имени перемещаемой папки и принимающей перемещение
{
try
{
if (!onlyFiles)
{
SDirectory.Move(dname, NewName); //создание директории
dname = NewName; //переопределение рабочей папки
}
else
{
DirectoryInfo _d = new DirectoryInfo(dname);
foreach (string f in SDirectory.GetFiles(dname))
{
SFile.Move(f, NewName);
}
}
}
catch (Exception e) //обработка исключений для перемещения
{
LogForOperations("Перемещение папки", e.Message); //запись ошибки (если есть) в лог
throw e;
}
}
else
{
LogForOperations("Перемещение папки", "операция с папкой невозможна, т.к. перемещаемая папка не существует либо в имени больше 260 символов, либо папка с новым именем уже существует");//запись ошибки в лог, если не выполнилась проверка
}
}