Самый простой способ добиться этого:
et.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
String text = arg0.toString();
if (text.contains(".") && text.substring(text.indexOf(".") + 1).length() > 2) {
et.setText(text.substring(0, text.length() - 1));
et.setSelection(et.getText().length());
}
}
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
public void afterTextChanged(Editable arg0) {
}
});
После некоторого экспериментирования я придумал этот способ автоматизировать безопасную загрузку FTP в PowerShell. Этот сценарий убегает , общественность тестирует FTP-сервер администрируемый Chilkat Software. Таким образом, можно скопировать и вставить этот код, и он будет работать без модификации.
$sourceuri = "ftp://ftp.secureftp-test.com/hamlet.zip"
$targetpath = "C:\hamlet.zip"
$username = "test"
$password = "test"
# Create a FTPWebRequest object to handle the connection to the ftp server
$ftprequest = [System.Net.FtpWebRequest]::create($sourceuri)
# set the request's network credentials for an authenticated connection
$ftprequest.Credentials =
New-Object System.Net.NetworkCredential($username,$password)
$ftprequest.Method = [System.Net.WebRequestMethods+Ftp]::DownloadFile
$ftprequest.UseBinary = $true
$ftprequest.KeepAlive = $false
# send the ftp request to the server
$ftpresponse = $ftprequest.GetResponse()
# get a download stream from the server response
$responsestream = $ftpresponse.GetResponseStream()
# create the target file on the local system and the download buffer
$targetfile = New-Object IO.FileStream ($targetpath,[IO.FileMode]::Create)
[byte[]]$readbuffer = New-Object byte[] 1024
# loop through the download stream and send the data to the target file
do{
$readlength = $responsestream.Read($readbuffer,0,1024)
$targetfile.Write($readbuffer,0,$readlength)
}
while ($readlength -ne 0)
$targetfile.close()
я нашел большую полезную информацию в этих ссылках
, Если Вы хотите использовать соединение SSL, необходимо добавить строку
$ftprequest.EnableSsl = $true
к сценарию перед вызовом GetResponse (). Иногда Вы, возможно, должны иметь дело с сертификатом безопасности сервера, который истекает (как, я, к сожалению, делаю). Существует страница в Репозиторий кода PowerShell , который имеет фрагмент кода, чтобы сделать это. Первые 28 строк являются самыми важными для целей загрузить файл.
Взято из здесь
$source = "ftp://ftp.microsoft.com/ResKit/win2000/dureg.zip"
$target = "c:\temp\dureg.zip"
$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile($source, $target)
Работает для меня
Насколько PowerShell идет,/n программное обеспечение , пакет NetCmdlets включает FTP cmdlets (включая поддержку обоих безопасных типов FTP), что Вы могли использовать довольно легко для этого.
Это не столь просто, как мне жаль, что это не было. Существует три опции, о которых я знаю.
1).Net - можно использовать.Net платформу, чтобы сделать это в PS, но это включает управление неструктурированным сокетом, которое я не хотел бы делать в сценарии. Если бы я шел этим путем, то я обернул бы весь спам ftp в DLL в C#, тогда используют тот DLL от powershell.
2) Управление файлом - Если Вы знаете шаблон названия файла, который необходимо получить каждый день тогда, Вы могли просто открыть свой сценарий ftp с PS и изменить имя файла в сценарии. Тогда выполните сценарий.
3) текст Канала к FTP - последняя опция состоит в том, чтобы использовать powershell для передачи по каналу информации в и из сеанса FTP. См. здесь .
Я успешно пользовался библиотекой.NET Проекта Инди, чтобы сделать FTP. И... тьфу, похож на размещенную сборку.NET, больше не доступно.
$ realdate = (Get-Date) .ToString ("yyyyMMdd")
$ path = "D: \ samplefolderstructure \ filename" + $ realdate + ".msi"
футов в секунду -f $ path -s: D: \ FTP.txt
ftp.txt - это способ хранения всей информации о нашем соединении с ftp-сервером. ftps - это клиент, который мы используем, очевидно, поэтому, возможно, придется изменить несколько вещей. Но это должно помочь вам понять идею.