Как установить DateTimeStamp на файл после загрузки на FTP? - PullRequest
2 голосов
/ 29 мая 2009

У меня есть приложение, которое развертывает файлы игровых данных на разных игровых приставках. Если совпадающие файлы на компьютере пользователя и на консоли имеют одинаковый размер и даты, их нельзя повторно развертывать.

В Xbox это легко сделать, потому что библиотека XDK, используемая для загрузки файлов на консоль, позволяет мне устанавливать дату для загружаемых файлов, чтобы соответствовать датам на компьютере пользователя.

Однако на PS3 я использую службу FTP, работающую на консоли. Я использую WebClient.UploadFileAsync для загрузки файлов на консоль. Однако я не могу понять, как я могу установить дату и время загруженного файла, оставив мне только размер файла, чтобы определить идентичные файлы, что небезопасно.

Мне было интересно, есть ли способ установить метку даты в файле через интерфейс WebClient?

Ответы [ 2 ]

2 голосов
/ 18 июля 2009

Я не думаю, что вы можете использовать интерфейс WebClient для этого.

Кажется, что на некоторых FTP-серверах реализованы различные нестандартные команды расширения FTP для поддержки настройки времени последнего изменения файла. Те, о которых я знаю:

  1. MDTM - это стандартная команда для получения времени последнего изменения файла (как используется GetDateTimestamp ()). Некоторые серверы поддерживают операцию set, указав в команде аргумент метки времени. а также имя файла.
  2. MFMT - это было определено в экспериментальном проекте IETF MFMT , чтобы стандартизировать эту операцию и избежать нестандартного использования команды MDTM, описанной выше.
  3. ИСПОЛЬЗОВАНИЕ САЙТА

Если FTP-сервер, работающий на PS3, поддерживает любое из этих расширений (проверьте результат команды FEAT), то вы можете использовать простое сокетное FTP-соединение для выдачи соответствующей команды на сервер после загрузки файла.

0 голосов
/ 30 мая 2009

WebClient передает FTP-соединения FtpWebRequest. Если вы используете FtpWebRequest напрямую, вы можете отправлять команды FTP на сервер. Поддерживаемые команды определяются как поля WebRequestMethods.Ftp. Одной из таких команд является GetDateTimestamp.

Таким образом, если вы создаете запрос FtpWebRequest вручную (а не через WebClient) и отправляете либо команду GateDateTimestamp, либо команду ListDirectoryDetails, вы сможете получить метку времени целевого файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...