相关疑难解决方法(0)

java.util.zip - 重新创建目录结构

在尝试使用java.util.zip我压缩存档时,遇到了很多问题,我解决了大部分问题.现在我终于得到了一些输出,我很难获得"正确"的输出.我有一个提取的ODT文件(目录将更符合描述)我做了一些修改.现在我想压缩该目录以重新创建ODT文件结构.压缩目录并将其重命名为.odt结束工作正常,所以应该没有问题.

主要问题是我丢失了目录的内部结构.一切都变得"平坦",我似乎找不到保留原始多层结构的方法.我希望得到一些帮助,因为我似乎无法找到问题.

以下是相关的代码段:

ZipOutputStream out = new ZipOutputStream(new FileOutputStream(
    FILEPATH.substring(0, FILEPATH.lastIndexOf(SEPARATOR) + 1).concat("test.zip")));
    compressDirectory(TEMPARCH, out);
Run Code Online (Sandbox Code Playgroud)

SEPARATOR是系统文件分隔符,FILEPATH是原始ODT的文件路径,我将覆盖但尚未在此处进行测试.我只是写入同一目录中的test.zip文件.

private void compressDirectory(String directory, ZipOutputStream out) throws IOException
{
    File fileToCompress = new File(directory);
    // list contents.
    String[] contents = fileToCompress.list();
    // iterate through directory and compress files.
    for(int i = 0; i < contents.length; i++)
    {
        File f = new File(directory, contents[i]);
        // testing type. directories and files have to be treated separately.
        if(f.isDirectory())
        {
            // add …
Run Code Online (Sandbox Code Playgroud)

java directory zip structure

41
推荐指数
2
解决办法
6万
查看次数

如何在android中压缩文件到zip文件夹?

我试图在电子邮件中发送多个文件,我得到了将它们附加到电子邮件中的代码.

   Intent sendIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
                       sendIntent.setType("application/octet-stream");
  ArrayList<Uri> uris = new ArrayList<Uri>();
                       uris.add(0, Uri.parse("file://"+Environment.getExternalStorageDirectory()+ "/.file"));
    File f = getActivity().getDatabasePath(".db");
    Log.i(TAG,"DB path"+ f.getAbsolutePath());
    uris.add(1, Uri.fromFile(f));
    sendIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
Run Code Online (Sandbox Code Playgroud)

但现在,我需要将它们压缩成单个zip文件,然后我必须通过电子邮件发送它们.好吧,我看到了许多答案和想法,但我仍然无法得到一些明确的想法.你能帮助我解决这个问题.

compression zip android

11
推荐指数
1
解决办法
2万
查看次数

标签 统计

zip ×2

android ×1

compression ×1

directory ×1

java ×1

structure ×1