Some versions of tar do not support names (paths, really) longer than 100 chars. If you've got paths longer than that, you won't be able to use a version that doesn't allow
lengths > 100 chars. Fortunately there seem to be other choices. I don't see a way to use com.ice.tar for this. But it looks like org.apache.tools.tar will work. Try this:
tos.setLongFileMode(TarOutputStream.LONGFILE_GNU);
Note also that you may want to put in some logic to modify the names a bit when you create entries. If you're tarring up everything from c:\csharpzip (as the base directory) you probably don't want to include the c:\csharpzip in the name. Because when someone
untars the files, they will probably be on another machine with a different root directory. Insead you want a relative path name. Which means replacing
c:\csharpzip\SharpZipLibSample\samples\DIME\DimeDataSetServiceConsumer\DimeDataSetServiceConsumer.csproj
with
SharpZipLibSample\samples\DIME\DimeDataSetServiceConsumer\DimeDataSetServiceConsumer.csproj
[now i use listFiles what you suggested(and recommended), is this implementation true, i mean the code.
It looks correct, yes. I haven't tested it carefully though - you'll have to do that.