This post is too old but just to add information so it can be helpful for others.
I faced same issue and by just trying i got the solution of it. (with some limitations).
your 0 bite file must be present at the same location with same name.
if you want to restore on different, 1st you need to check access form your 1st database server (source server) to 2nd database server (where u want to RESTORE database).
Check you database backup details using following script on 1st server ..
SELECT TOP 100
CAST(CAST(s.backup_size / 1000000 AS INT) AS VARCHAR(14)) + ' ' + 'MB' AS bkSize,
s.backup_finish_date) AS VARCHAR(4)) + ' ' + 'Seconds' TimeTaken,
CAST(s.first_lsn AS VARCHAR(50)) AS first_lsn,
CAST(s.last_lsn AS VARCHAR(50)) AS last_lsn,
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Transaction Log'
END AS BackupType,
FROM msdb.dbo.backupset s
INNER JOIN msdb.dbo.backupmediafamily m ON s.media_set_id = m.media_set_id
WHERE s.database_name = DB_NAME() -- Remove this line for all the database
ORDER BY backup_start_date DESC, backup_finish_date
this will give you LNS details with backup time , size , LAN, backup file name and backup type.
now check the sequence of that backup set with
restore headeronly from disk =N'd:\test\test_trn_12:30.trn'
from the position column , take the position no of your backup set and use the same No for FILE = option in below query and run it on 2nd server.
RESTORE LOG [testing] FROM DISK = N'\\remote-server-name\D$\test\test_trn:20.trn' WITH FILE = 1, NORECOVERY/RECOVER
like the same way you can restore full and differential backup backup ....
RESTORE DATABASE Testing from DISK =N'\\remote-server-name\D$\test\test_full.bak' WITH FILE = 1 , NORECOVERY/RECOVER