Есть ли способ удалить файл/папку с ftp-сервера с помощью CFNetwork?

Я искал в Интернете решение, но, похоже, оно не из легких. Теперь, конечно, должен быть способ, даже если это означает, что мне нужно самому отправить команду RMDIR на ftp. Однако мои знания сокетов/потоков не очень широки, и я не уверен, с чего мне начать.

PS: уже пробовал CFURLDestroyResource, который не работает для удаления папки. Apple заявляет, что CFNetwork напрямую не поддерживает удаление для схемы/протокола FTP (только для HTTP), поэтому я думаю, что мне нужно как-то реализовать это самостоятельно, но опять же, с чего мне начать?


person Valentin Radu    schedule 25.08.2011    source источник
comment
Просто чтобы вы знали, Apple сильно не любит FTP. FTP-клиент в Finder сильно искалечен, и это правильно. Он не позволяет вам удалять данные при использовании FTP, поэтому я не знаю, насколько успешно вы добьетесь успеха в iOS.   -  person Jack Humphries    schedule 26.08.2011
comment
Я знаю об этом, я также знаю, что FTP — дрянной незащищенный протокол (да, имя пользователя и пароль передаются без шифрования) и что Apple (естественно) его ненавидит. Однако, к сожалению для нас, программистов, он существует и иногда не мы решаем, использовать его или нет ;)   -  person Valentin Radu    schedule 26.08.2011


Ответы (2)


Во-первых, работает CFURLDestroyResource. Проблема в том, что для удаления каталога в протоколе ftp каталог должен быть пустым.

Поэтому в основном вам нужно перечислить все файлы и каталоги в этом каталоге и сначала удалить их.

Также будьте осторожны, ваш URL-адрес должен заканчиваться на «/», если вы удаляете каталог.

вместо ftp://user:[email protected]/somedir следует использовать ftp://user:[email protected]/somedir/

person Deniz Mert Edincik    schedule 31.08.2011
comment
Хорошо, попробую с пустым каталогом, когда вернусь домой. - person Valentin Radu; 31.08.2011
comment
Только что проверил, и действительно, CFURLDestroyResource отлично работает и с каталогами, просто они должны быть пустыми. Спасибо! - person Valentin Radu; 02.09.2011

Этот проект с открытым исходным кодом поддерживает FTP в Cocoa; однако похоже, что может потребоваться некоторый взлом, чтобы заставить его работать с Cocoa Touch.

Независимо от того, можете ли вы использовать его как есть, реализация протокола FTP может помочь вам в этом.

person Ben Mosher    schedule 28.08.2011
comment
Я не ищу библиотеку, но я попытаюсь найти код, который удаляет файл, и, что более важно, смогу ли я сделать то же самое на iOS (из предыдущего опыта я обнаружил, что есть несколько различия при использовании CFNetwork в iOS по сравнению с OSX) - person Valentin Radu; 28.08.2011