Skip to content

Commit

Permalink
XML-DOC.
Browse files Browse the repository at this point in the history
  • Loading branch information
dmpas committed Apr 12, 2017
1 parent 6a0bcd0 commit 9eca077
Show file tree
Hide file tree
Showing 3 changed files with 143 additions and 1 deletion.
101 changes: 101 additions & 0 deletions oscript-ftp/FtpConnection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,25 @@

namespace oscriptFtp
{
/// <summary>
/// Предназначен для работы с файлами посредством FTP.
/// </summary>
[ContextClass("FTPСоединение")]
public sealed class FtpConnection : AutoContext<FtpConnection>
{
private string _currentDirectory = "/";

/// <summary>
/// Создаёт новый объект <see cref="T:oscriptFtp.FtpConnection">FTPСоединение</see>.
/// </summary>
/// <param name="server">Сервер.</param>
/// <param name="port">Порт. Необязательный</param>
/// <param name="userName">Имя пользователя. Необязательный</param>
/// <param name="password">Пароль. Необязательный</param>
/// <param name="proxy">Прокси. Необязательный</param>
/// <param name="passiveConnection">Пассивный режим.</param>
/// <param name="timeout">Таймаут.</param>
/// <param name="secureConnection">Защищённое соединение.</param>
public FtpConnection(
string server,
int port = 0,
Expand All @@ -36,27 +50,59 @@ public FtpConnection(
SecureConnection = secureConnection;
}

/// <summary>
/// Защищённое соединение.
/// </summary>
/// <value>Содержит объект защищённого соединения.</value>
[ContextProperty("ЗащищенноеСоединение")]
public IValue SecureConnection { get; }

/// <summary>
/// Пароль.
/// </summary>
/// <value>Пароль.</value>
[ContextProperty("Пароль")]
public string Password { get; }

/// <summary>
/// Пассивный режим.
/// </summary>
/// <value>Пассивный режим.</value>
[ContextProperty("ПассивныйРежим")]
public bool PassiveMode { get; }

/// <summary>
/// Имя пользователя.
/// </summary>
/// <value>Имя пользователя.</value>
[ContextProperty("Пользователь")]
public string User { get; }

/// <summary>
/// Порт.
/// </summary>
/// <value>Порт.</value>
[ContextProperty("Порт")]
public int Port { get; }

/// <summary>
/// Прокси.
/// </summary>
/// <value>Прокси.</value>
[ContextProperty("Прокси")]
public InternetProxyContext Proxy { get; }

/// <summary>
/// Сервер.
/// </summary>
/// <value>Сервер, с которым устанавливается соединение.</value>
[ContextProperty("Сервер")]
public string Server { get; }

/// <summary>
/// Таймаут.
/// </summary>
/// <value>Таймаут в секундах. 0 - без таймаута.</value>
[ContextProperty("Таймаут")]
public int Timeout { get; }

Expand Down Expand Up @@ -160,6 +206,13 @@ void ListFiles(string path, out IList<string> directories, out IList<string> fil
}
}

/// <summary>
/// Ищет файлы на удалённом сервере.
/// </summary>
/// <returns>Массив.</returns>
/// <param name="path">Путь.</param>
/// <param name="mask">Маска. Необязательный</param>
/// <param name="recursive">Искать во вложенных каталогах.</param>
[ContextMethod("НайтиФайлы")]
public ArrayImpl FindFiles(string path, string mask = null, bool recursive = true)
{
Expand Down Expand Up @@ -230,6 +283,11 @@ public ArrayImpl FindFiles(string path, string mask = null, bool recursive = tru
return result;
}

/// <summary>
/// Записывает локальный файл на удалённый сервер.
/// </summary>
/// <param name="localFilePath">Путь к файлу на локальном компьютере.</param>
/// <param name="remoteFilePath">Путь к файлу на удалённом сервере.</param>
[ContextMethod("Записать")]
public void Put(string localFilePath, string remoteFilePath)
{
Expand All @@ -247,6 +305,11 @@ public void Put(string localFilePath, string remoteFilePath)
request.GetResponse();
}

/// <summary>
/// Скачивает файл с удалённого сервера.
/// </summary>
/// <param name="remoteFilePath">Путь к файлу ан удалённом сервере.</param>
/// <param name="localFilePath">Путь к файлу, в который будет записан удалённый файл.</param>
[ContextMethod("Получить")]
public void Get(string remoteFilePath, string localFilePath)
{
Expand All @@ -262,6 +325,11 @@ public void Get(string remoteFilePath, string localFilePath)

}

/// <summary>
/// Удаляет файлы на сервере.
/// </summary>
/// <param name="path">Путь.</param>
/// <param name="mask">Маска. Необязательный</param>
[ContextMethod("Удалить")]
public void Delete(string path, string mask = null)
{
Expand All @@ -281,6 +349,11 @@ public void Delete(string path, string mask = null)
request.GetResponse();
}

/// <summary>
/// Перемещает файл на удалённом сервере.
/// </summary>
/// <param name="currentPath">Путь к перемещаемому файлу.</param>
/// <param name="newPath">Новый Путь файла.</param>
[ContextMethod("Переместить")]
public void Move(string currentPath, string newPath)
{
Expand All @@ -291,6 +364,10 @@ public void Move(string currentPath, string newPath)
request.GetResponse();
}

/// <summary>
/// Получает рабочий каталог на удалённом сервере.
/// </summary>
/// <returns>Рабочий каталог.</returns>
public string GetWorkingDirectory()
{
var request = GetRequest("");
Expand All @@ -311,12 +388,20 @@ private string UniteFtpPath(string a, string b)
return uri.LocalPath;
}

/// <summary>
/// Возвращает текущий каталог соединения.
/// </summary>
/// <returns>Текущий каталог.</returns>
[ContextMethod("ТекущийКаталог")]
public string GetCurrentDirectory()
{
return _currentDirectory;
}

/// <summary>
/// Устанавливает текущий каталог соединения.
/// </summary>
/// <param name="directory">Каталог.</param>
[ContextMethod("УстановитьТекущийКаталог")]
public void SetCurrentDirectory(string directory)
{
Expand All @@ -327,6 +412,10 @@ public void SetCurrentDirectory(string directory)
}
}

/// <summary>
/// Создаёт каталог на удалённом сервере.
/// </summary>
/// <param name="dirName">Имя каталога.</param>
[ContextMethod("СоздатьКаталог")]
public void CreateDirectory(string dirName)
{
Expand All @@ -336,6 +425,18 @@ public void CreateDirectory(string dirName)

}

/// <summary>
/// Создаёт объект FTPСоединение.
/// </summary>
/// <returns>FTPСоединение.</returns>
/// <param name="server">Подключаемый сервер.</param>
/// <param name="port">Порт. Необязательный</param>
/// <param name="userName">Имя пользователя. Необязательный</param>
/// <param name="password">Пароль. Необязательный</param>
/// <param name="proxy">Прокси. Необязательный</param>
/// <param name="passiveConnection">Пассивный режим. Необязательный</param>
/// <param name="timeout">Таймаут. Необязательный</param>
/// <param name="secureConnection">Защищённое соединение. Необязательный</param>
[ScriptConstructor]
public static IRuntimeContextInstance Constructor(
IValue server,
Expand Down
2 changes: 1 addition & 1 deletion oscript-ftp/FtpCrutch.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

namespace oscriptFtp
{
public static class FtpCrutch
static class FtpCrutch
{

public static Regex GetRegexForFileMask(string FileMask)
Expand Down
41 changes: 41 additions & 0 deletions oscript-ftp/FtpFile.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,20 @@

namespace oscriptFtp
{
/// <summary>
/// Описывает файл на удалённом сервере.
/// </summary>
[ContextClass("FTPФайл")]
public sealed class FtpFile : AutoContext<FtpFile>
{
private readonly bool _isDirectory;

/// <summary>
/// Создаёт описание файла.
/// </summary>
/// <param name="path">Путь к файлу.</param>
/// <param name="filename">Имя файла.</param>
/// <param name="isDir"><c>true</c> если это каталог.</param>
public FtpFile(string path, string filename, bool isDir = false)
{
Path = path;
Expand All @@ -23,33 +32,65 @@ public FtpFile(string path, string filename, bool isDir = false)
_isDirectory = isDir;
}

/// <summary>
/// Имя файла.
/// </summary>
/// <value>Имя файла или каталога.</value>
[ContextProperty("Имя")]
public string Name { get; }

/// <summary>
/// Имя без расширения.
/// </summary>
/// <value>Имя файла или каталога без расширения.</value>
[ContextProperty("ИмяБезРасширения")]
public string BaseName { get; }

/// <summary>
/// Полное имя.
/// </summary>
/// <value>Полный путь к файлу.</value>
[ContextProperty("ПолноеИмя")]
public string FullName { get; }

/// <summary>
/// Путь.
/// </summary>
/// <value>Каталог, в котором находится файл.</value>
[ContextProperty("Путь")]
public string Path { get; }

/// <summary>
/// Расширение.
/// </summary>
/// <value>Расширение файла.</value>
[ContextProperty("Расширение")]
public string Extension { get; }

/// <summary>
/// Определяет, что путь указывает на файл.
/// </summary>
/// <returns><c>true</c>, если это файл, <c>false</c> - это каталог.</returns>
[ContextMethod("ЭтоФайл")]
public bool IsFile()
{
return !_isDirectory;
}

/// <summary>
/// Определяет, что путь указывает на каталог.
/// </summary>
/// <returns><c>true</c>, если это каталог, <c>false</c> - это файл.</returns>
[ContextMethod("ЭтоКаталог")]
public bool IsDirectory()
{
return _isDirectory;
}

/// <summary>
/// Returns a <see cref="T:System.String"/> that represents the current <see cref="T:oscriptFtp.FtpFile"/>.
/// </summary>
/// <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:oscriptFtp.FtpFile"/>.</returns>
public override string ToString()
{
return string.Format("[{0}]", FullName);
Expand Down

0 comments on commit 9eca077

Please sign in to comment.