Pergunta

Estou FTP'ing arquivos a partir de um servidor externo, em seguida, excluí-los no servidor externo, e um arquivo falhou porque não havia um espaço no nome do arquivo. Eu mudei meu comando ftp de exclusão ter aspas em torno do nome de arquivo.

ftpStream.WriteLine("delete """ & FileToDelete & """")

Mas, existem outros caracteres que um usuário pode usar em sua criação nome de arquivo, que o meu programa ainda vai engasgar com? Eu não tenho qualquer controle que esses nomes possam ser.

(I colocar uma etiqueta de SSIS e SQL Server, porque eu estou criando a tarefa ftp em tempo real, a partir de um Pakcage SSIS. OS em ambos os lados são Win XP)

Foi útil?

Solução

Todos os caracteres que são reservados pelo sistema de arquivos não será permitido. Isso geralmente inclui espaços, vírgulas, barras, dois pontos, marcas de quetion, aspas duplas, etc. Mas, como JaredPar mencionado, o espaço é provavelmente o ofensor única universal uma vez que cada sistema de arquivos tem seu próprio conjunto de caracteres reservados que nem sempre se sobrepõem.

é uma boa idéia para url codificar qualquer FTP ou HTTP caminhos. Isto irá converter espaços para% 20 que normalmente deve ser entendida pelo servidor ftp.

Outras dicas

Veja a seção 5.3 do FTP RFC (RFC 959) . Não há realmente quaisquer caracteres ilegais, que não CrLf, que são ilegais como parte do nome do arquivo.

O problema é saber quais caracteres o servidor de destino engasgar com vs. caracteres FTP ilegais. Eu estou supondo que, além de espaço, não há também muitos personagens que irão causar problem.s Mas eu não sou um especialista FTP.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top