Я не могу придумать способ сделать это прямо сейчас, но я думаю, что ближайший вы можете получить что-то вроде:
my-time
, который зависит от [112 ] реэкспорт ваших функций прокладок с комментариями, например
import qualified Data.Time as Time
{-# WARNING getCurrentTime "you should prefer getCurrentTimeMicroseconds" #-}
getCurrentTime = Time.getCurrentTime
, зависит от my-time
в ваших пакетах
очевидно, что это не дает вам способа принудительно импортировать Data.Time.getCurrentTime
, а не , и еще менее удовлетворительно, когда код, который вы хотите подобрать, находится в Prelude или base
. [ 1113]
Ну, проблема не состоит в том, что я не могу создать соединение FTP, но что URI не анализируется accoding к RFC 2396.
То, что я на самом деле намеревался сделать, должно было создать Фабрику, которая обеспечивает, реализации универсального интерфейса Передачи файлов (содержащий получают и помещают методы), на основе данного соединения URI. URI определяет протокол, информацию о пользователе, хост и путь, и любые свойства должны были быть переданы, должен быть передан через часть Запроса URI (такого как опция режима Passive для соединения FTP).
Однако это доказанное трудное использование реализации Uri.NET, потому что это, кажется, анализирует часть Запроса URI по-другому на основе схемы.
Таким образом, я надеялся, что кто-то знал обходное решение к этому, или альтернативы по-видимому поврежденной.NET реализация Uri. Было бы хорошо знать прежде, чем провести часы, реализовав мое собственное.
Необходимо использовать классы FtpWebRequest и FtpWebResponse, если у Вас нет определенной причины не к.
FtpWebRequest.fwr = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://uri"));
fwr.ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;
fwr.ftpRequest.Credentials = new NetworkCredential("user", "pass");
FileInfo ff = new FileInfo("localpath");
byte[] fileContents = new byte[ff.Length];
using (FileStream fr = ff.OpenRead())
{
fr.Read(fileContents, 0, Convert.ToInt32(ff.Length));
}
using (Stream writer = fwr.GetRequestStream())
{
writer.Write(fileContents, 0, fileContents.Length);
}
FtpWebResponse frp = (FtpWebResponse)fwr.GetResponse();
Response.Write(frp.ftpResponse.StatusDescription);
Необходимо использовать определенный класс для протокола FTP как FtpWebRequest, который имеет свойство Uri как RequestUri.
Необходимо искать в thoses классах синтаксический анализатор Uri, я думаю.