using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Net;
using System.Net.Sockets;
using System.IO;
namespace Server
{
class Program
{
static void Main(string[] args)
{
FileManager fm = new FileManager();
while (true)
{
GetMenu();
int select;
while (true)
{
Console.Write("Ваш выбор: ");
if (int.TryParse(Console.ReadLine(), out select)) { break; }
}
switch (select)
{
case 0:
return; //выход
case 1:
string[] dir = fm.GetDirectory;
for (int i = 0; i < dir.Length; i++)
{
Console.WriteLine(dir[i]);
}
break;
case 2:
string[] file = fm.GetFiles;
for (int i = 0; i < file.Length; i++)
{
Console.WriteLine(file[i]);
}
break;
case 3:
Console.Write("Введите имя директории: ");
string newDirectory = Console.ReadLine();
fm.GoToDirectory(newDirectory);
break;
case 4:
fm.BackToDirectiry();
break;
case 5:
Console.Write("Введите имя новой директории: ");
string nameCreateDirectory = Console.ReadLine();
fm.CreateCatalog(nameCreateDirectory); //какого хрена каталог? Всегда же директория.. Переименовать.
break;
case 6:
Console.Write("Введите имя нового файла: ");
string nameCreateFile = Console.ReadLine();
fm.CreateFile(nameCreateFile);
break;
case 7:
Console.Write("Введите имя директории: ");
string nameRemoveDirectory = Console.ReadLine();
fm.RemoveDirectory(nameRemoveDirectory);
break;
case 8:
Console.Write("Введите имя файла: ");
string nameRemoveFile = Console.ReadLine();
fm.RemoveFile(nameRemoveFile);
break;
case 9:
Console.Write("Введите имя директории которую надо переименовать: ");
string nameRenameDirectory = Console.ReadLine();
Console.Write("Введите новое имя: ");
string newNameRenameDirectory = Console.ReadLine();
fm.RenameDirectory(nameRenameDirectory, newNameRenameDirectory);
break;
case 10:
Console.Write("Введите имя файла который надо переименовать: ");
string nameRenameFile = Console.ReadLine();
Console.Write("Введите новое имя: ");
string newNameRenameFile = Console.ReadLine();
fm.RenameFile(nameRenameFile, newNameRenameFile);
break;
case 11:
Console.Write("Введите полный путь к директории которую следует сюда переместить: ");
string fullPathDirectory = Console.ReadLine();
fm.MoveDirectory(fullPathDirectory);
break;
case 12:
Console.Write("Введите полный путь к файлу который следует сюда переместить: ");
string fullPathFile = Console.ReadLine();
fm.MoveFile(fullPathFile);
break;
case 13:
Console.Write("Введите полный путь к директории которую следует сюда скопировать: ");
string fullPathCopyDirectory = Console.ReadLine();
fm.CopyDirectory(fullPathCopyDirectory);
break;
case 14:
Console.Write("Введите полный путь к файлу который следует сюда скопировать: ");
string fullPathCopyFile = Console.ReadLine();
fm.CopyFile(fullPathCopyFile);
break;
case 15:
Console.Write("Введите имя файла: ");
string nameGetFile = Console.ReadLine();
string[] lines = fm.GetTextFileContent(nameGetFile);
Console.WriteLine("======= " + nameGetFile + " =======");
foreach (string str in lines)
{
Console.WriteLine(str);
}
Console.WriteLine("=====================================");
break;
case 16:
Console.Write("Введите имя файла: ");
string nameToSetFile = Console.ReadLine();
Console.Write("Введите произвольный текст: ");
string newStr = Console.ReadLine();
fm.SetTextFileContent(nameToSetFile, newStr);
break;
}
}
}
/*Интерфейс файлового менеджера:
+ * GetDirectories:string[] (свойство) Возвращает список каталогов в виде массива строк
+ * GetFiles:string[] (свойство) Возвращает список файлов в виде массива строк
+ * GoToDirectory(string):void Переходит в указанный в качестве параметра каталог
+ * BackToDirectiry():void Возращается в родительский каталог
+ * CreateCatalog(string):void Создает каталог, имя которого переданно в качестве параметра
+ * CreateFile(string):void Создает файл, имя которого переданно в качестве параметра
+ * RemoveDirectory(string):void Удаляет указаную деректорию, имя которой передано в качестве аргумента
+ * RemoveFile(string):void Удаляет указаный файл, имя которого передано в качестве аргумента
+ * RenameDirectory(string, string):void Переименовывает указанную директорию (первый параметр) в имя, переданное вторым параметром
+ * RenameFile(string, string):void Переименовывает указанный файл (первый параметр) в имя, переданное вторым параметром
+ * MoveDirectory(string):void Перемещает в текущую директорию новую директорию, полное имя которого передано параметром
+ * MoveFile(string):void Перемещает в текущую директорию новый файл, полное имя которого передано параметром
+ * CopyDirectory(string):void Копирует в текущий каталог новый каталог, полное имя которого передано в качестве параметра.
+ * CopyFile(string):void Копирует в текущий каталог новый файл, полное имя которого передано в качестве параметра.
+ * GetTextFileContent(string):string[] Возвращает текстовое содержимое указанного файла массивом строк
* SetTextFileContent(string, string[]):void Устанавливает новое содержимое файла, первый параметр - имя файла, второй параметр - массив строк
+ * SetTextFileContent(string, string):void Устанавливает новое содержимое файла, первый параметр - имя файла, второй параметр - строка
*
*/
static void GetMenu()
{
Console.WriteLine(@"Выберите действие:
1. Список директорий
2. Список файлов
3. Перейти в директорию
4. Подняться в родительский каталог
5. Создать каталог
6. Создать файл
7. Удалить каталог
8. Удалить файл
9. Переименовать каталог
10. Переименовать файл
11. Переместить сюда директорию
12. Переместить сюда файл
13. Скопировать сюда директорию
14. Скопировать сюда файл
15. Получить текстовое содерфимое файла
16. Записать новые данные в файл
");
}
}
}