Ограничение файловой системы на максимальный размер тома
Доброе утро, уважаемые форумчане. Я выполняю аналог команд в Linux( на подобие терминала). Есть код, который перемещает файл в другую директорию. Но мне надо, чтобы при выполнении перемещения выполнялась проверка на максимальный размер тома(это у меня 2 ГБ). В моем понимании размер тома = размер диска (Пусть там HDD и т.д). Я пробывал делать проверку, но если я указываю drive.TotalSize > MaxValue то, она на все действия перемещения отвечала данным сообщением, как мне нужно делать нормальное ограничение на максимальный размер тома в 2 ГБ.
using System.IO;
namespace ConsoleApp10
{
class Program
{
static void Main(string[] args)
{
bool consoleEmulate = true;
string fullCommand;
string commandCdWay = @"F:\";
DriveInfo[] allDrives = DriveInfo.GetDrives();
while (consoleEmulate)
{
Console.Write($@"{commandCdWay}>");
fullCommand = Console.ReadLine();
string command = "g", commandCharacter = "g";
string copyFileDirectoryWay = "g";
bool firstSymbol = true;
bool part2 = false;
bool part3 = false;
for (int i = 0; i < fullCommand.Length; i++)
{
if (fullCommand[i] != ' ' && !part2)
{
if (firstSymbol)
{
command = Convert.ToString(fullCommand[i]);
firstSymbol = false;
}
else
{
command += fullCommand[i];
}
}
else if (!part3)//запись commandCharacter
{
if (fullCommand[i] == ' ' && part2)
{
part3 = true;
}
if (!part2)
{
firstSymbol = true;
}
part2 = true;
if (firstSymbol && fullCommand[i] != ' ')
{
commandCharacter = Convert.ToString(fullCommand[i]);
firstSymbol = false;
}
else if (!firstSymbol)
{
commandCharacter += fullCommand[i];
}
}
else if (part3)//copyfile directory way
{
if (fullCommand[i] == ' ')
{
firstSymbol = true;
}
if (firstSymbol && fullCommand[i] != ' ')
{
copyFileDirectoryWay = Convert.ToString(fullCommand[i]);
firstSymbol = false;
}
else if (!firstSymbol)
{
copyFileDirectoryWay += fullCommand[i];
}
}
}
if (command == "filecopy") // перемещение файла в другую директорию
{
copyFileDirectoryWay = copyFileDirectoryWay.Remove(0, 1);
commandCharacter = commandCharacter.Trim();
FileInfo fileInfo = new FileInfo(@$"{commandCdWay}\{commandCharacter}");
DirectoryInfo copyDirInfo = new DirectoryInfo(copyFileDirectoryWay);
//string disk = commandCdWay;
double MaxValue = 2147483648;
foreach (var drive in DriveInfo.GetDrives())
{
if (drive.TotalSize > MaxValue) {
Console.WriteLine("Ограничение размера тома");
}
else if (fileInfo.Exists && copyDirInfo.Exists)
{
fileInfo.CopyTo(copyFileDirectoryWay, false);
}
}
}
else if (command == "rmdir")//удаление
{
FileInfo fileInf = new FileInfo(@$"{commandCdWay}\{commandCharacter}");
fileInf.Delete();
}
}
}
}
}