2013-07-18 3 views
1

В настоящее время я работаю над передачей файла p2p через сокет на java, и мне удалось получить исходный файл (изображение, pdf, txt и т. Д.), Отправленный в другой каталог на локальный. Но моя проблема в том, есть ли способ сохранить имя файла копии с исходным именем файла после передачи без жесткого кодирования (я использую строку аргументов, чтобы получить путь к исходному файлу, назначить порт для подключения, IP целевого соединения и выходного тракта)сохранение имени файла после передачи файла

+0

Как вы копируете файл, не получив имя в первую очередь? Если у вас есть имя, чтобы выбрать файл для копирования (я предполагаю, что это то, что вы делаете), не могли бы вы просто назвать новый файл именем старого? – booleanCube

+1

Я получаю имя файла в серверной части моей программы (как вы сказали, это в первую очередь, и это единственный аргумент для части сервера) и обработка остального в клиентской части, и ваш вопрос - мой фактический вопрос, я точно спрашиваю, как импортировать имя файла из строки аргумента и назначить его имени скопированного файла. – emenike

+0

Хорошо, что имеет смысл, спасибо за разъяснение. Я иногда теряюсь, пытаясь понять вопросы. – booleanCube

ответ

0

Вы должны отправить его через соединение сокета. Я вижу два решения:

Первое решение: отправить его через новое соединение.

  • Открыть соединение, отправить имя файла, закрыть его.
  • Откройте соединение, отправьте данные файла, закройте его.
  • Сохраните файл с именем и полученными данными.

Второе решение: отправьте имя по тому же соединению.

  • Открыть соединение, отправить имя файла специальным финальным байтом. На стороне клиента читайте байты, пока не найдете специальный байт.
  • На стороне клиента продолжают читать байты и сохранять их в новом файле.
Смежные вопросы