在Coldfusion中使用USTAR头构建TAR文件

时间:2017-04-22 16:44:14

标签: java coldfusion tar

我正在ColdFusion中构建一个TAR存档。有人很好地帮我弄清楚如何用JAVA做到这一点,但我提交TAR文件的系统说它收到错误,因为标题不是USTAR格式。我无法试图弄清楚如何更改标题格式。任何帮助表示赞赏。以下是我在Windows Server 2012上使用CF10的代码:

 <!--- put the files into a TAR file --->
         <cfscript>
            // Initialize TAR file to generate
            outputPath = "#thisbatchDir##thisBatchNumber#.tar";
            os = createObject("java", "java.io.FileOutputStream").init(outputPath);
            tar = createObject("java", "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream").init(os);
            dir = "#thisBatchNumber#/";

            // tar.ustarFormat('true');


            // Create an entry from a file (lst file)
            inputFile = createObject("java", "java.io.File").init("#thisbatchDir##thisLstFilename#");
            entry = tar.createArchiveEntry(inputFile, "#dir##thisLstFilename#");
            tar.putArchiveEntry(entry);
            tar.write(FileReadBinary(inputFile));
            tar.closeArchiveEntry();

            sleep(1000);

            for (image in qryGetBatchImagesData) {

            // Create an entry from a file (tif files)
            inputFile = createObject("java", "java.io.File").init("#thisbatchDir##image.vImageFileName#");
            entry = tar.createArchiveEntry(inputFile, "#dir##thisBatchNumber##numberFormat(image.iPageNum - 1,'000')#bf.tif");
            tar.putArchiveEntry(entry);
            tar.write(FileReadBinary(inputFile));
            tar.closeArchiveEntry();

            sleep(1000);

            }

            // create a second entry in a folder (trnsact file)
            inputFile2 = createObject("java", "java.io.File").init("#thisbatchDir#transact.dat");
            entry2 = tar.createArchiveEntry(inputFile2, "#dir#transact.dat");
            tar.putArchiveEntry(entry2);
            tar.write(FileReadBinary(inputFile2));
            tar.closeArchiveEntry();

            sleep(1000);

            // create a second entry in a folder (eob file)
            eobFileInput = createObject("java", "java.io.File").init("#thisbatchDir##thisBatchNumber#.eob");
            entry2 = tar.createArchiveEntry(eobFileInput, "#thisBatchNumber#.eob");
            tar.putArchiveEntry(entry2);
            tar.write(FileReadBinary(eobFileInput));
            tar.closeArchiveEntry();

            // Close TAR file
            tar.flush();
            tar.close();
        </cfscript>

0 个答案:

没有答案