distributed-computing/tasks/dunaev-ol/lab_2/worker-1/Program.cs

61 lines
2.2 KiB
C#
Raw Permalink Normal View History

2023-12-13 13:25:11 +04:00
using System;
using System.IO;
namespace FileManipulation
{
class Program
{
static void Main(string[] args)
{
string sourceDirectoryPath = "/var/data";
string destinationFilePath = "/var/result/data.txt";
string fileWithMostLines = string.Empty;
int maxLineCount = 0;
try
{
DirectoryInfo sourceDirectory = new DirectoryInfo(sourceDirectoryPath);
FileInfo[] files = sourceDirectory.GetFiles();
foreach (var file in files)
{
int lineCount = File.ReadLines(file.FullName).Count();
if (lineCount > maxLineCount)
{
maxLineCount = lineCount;
fileWithMostLines = file.FullName;
}
}
if (!string.IsNullOrEmpty(fileWithMostLines))
{
// Перемещение файла с наибольшим количеством строк в новое место
File.Move(fileWithMostLines, destinationFilePath);
Console.WriteLine($"Файл {fileWithMostLines} успешно перемещен в {destinationFilePath}.");
}
else
{
Console.WriteLine("В указанном каталоге нет файлов.");
}
}
catch (DirectoryNotFoundException)
{
Console.WriteLine("Указанный каталог не существует.");
}
catch (IOException ex)
{
Console.WriteLine($"Произошла ошибка при перемещении файла: {ex.Message}");
}
catch (UnauthorizedAccessException)
{
Console.WriteLine("Недостаточно прав для доступа к каталогу или файлу.");
}
catch (Exception ex)
{
Console.WriteLine($"Произошла непредвиденная ошибка: {ex.Message}");
}
}
}
}