Eu continuo recebendo esse erro.
URI inválido: o formato do URI não pôde ser determinado.
o código que tenho é:
Uri uri = new Uri(slct.Text);
if (DeleteFileOnServer(uri))
{
nn.BalloonTipText = slct.Text + " has been deleted.";
nn.ShowBalloonTip(30);
}
Update: o conteúdo em slct.Text é ftp.jt-software.net/style.css
.
O que da? Como isso não é um formato de URI válido? É um texto simples.
ftp://
ouhttp://
em seu URI. Você tem o meu voto agora ;-)Respostas:
Pode ser útil usar um construtor diferente para Uri.
Se você tem o nome do servidor
e ter um caminho Uri relativo para anexar a ele, por exemplo
Ao criar um Uri a partir desses dois, obtenho a exceção "não foi possível determinar o formato", a menos que use o construtor com o argumento UriKind, ou seja,
fonte
Verifique os possíveis motivos aqui: http://msdn.microsoft.com/en-us/library/z6c2z492(v=VS.100).aspx
EDITAR:
Você precisa colocar o prefixo do protocolo antes do endereço, ou seja, no seu caso, "ftp: //"
fonte
Parece que pode ser um uri real. Eu tive esse problema ao fazer cross-browser Silverlight; no meu blog , mencionei uma solução alternativa: passe um uri de "contexto" como o primeiro parâmetro.
Se o uri for realtivo, o uri de contexto será usado para criar um uri completo. Se o uri for absoluto, o uri de contexto será ignorado.
EDIT: Você precisa de um "esquema" no uri, por exemplo, "ftp: //" ou "http: //"
fonte
Melhor uso
Uri.IsWellFormedUriString(string uriString, UriKind uriKind)
. http://msdn.microsoft.com/en-us/library/system.uri.iswellformeduristring.aspxExemplo: -
fonte
Eu contornei isso usando o UriBuilder .
fonte
O problema para mim foi que, quando recebi algum nome de domínio, eu tinha:
cloudsearch -..-..- xxx.aws.cloudsearch ... [ERRADO]
http: //cloudsearch-..-..-xxx.aws.cloudsearch ... [DIREITO]
espero que isso funcione para você :)
fonte