2

我在获取邮件附件大小时遇到​​问题。因此无法为进度条提供正确的参数(通过 publishProgress)。任何帮助将不胜感激。

下面是我正在使用的代码:

    try{
            store = s.getStore("imaps");
            store.connect("imap.gmail.com", "myemail@gmail.com", "password");
            Folder inbox = store.getFolder("Inbox"); //Shantivan Rosary
            inbox.open(Folder.READ_ONLY);
            msgs = inbox.getMessages();
            m=(Multipart)msgs[inbox.getMessageCount()-1].getContent(); //Getting the newest email. Assuming it has only one attachment. You can extend
            for(int i=0;i<m.getCount();i++){
                    bp = m.getBodyPart(i);
                    disposition = bp.getDisposition();
                    if(disposition!=null && (disposition.equals("ATTACHMENT"))){
                            fileName = bp.getFileName();
                            base64dec = (InputStream)bp.getContent();
                            OutputStream output = new FileOutputStream(Environment.getExternalStorageDirectory()+"/"+fileName);
                            byte data[] = new byte[8192];
                            long total = 0;
                            while ((count = base64dec.read(data)) != -1){
                                    total += count;
                                    output.write(data, 0, count);
                                    publishProgress((int)total);
                            }
                            output.flush();
                            output.close();base64dec.close();
                    }
            }
    }catch(Exception e){
            errorMsg += "\nError: "+e.toString();
            Log.e("MyError:",e.toString());
    }
4

1 回答 1

0

您可以使用以下命令轻松找到下载的电子邮件文件的大小(以字节为单位):

File file=new File(Environment.getExternalStorageDirectory(), "example.txt");
long length=file.length();//returns size in bytes 

相关链接: 在 android sdk 中获取文件大小?

编辑

要在下载前获取文件大小,请检查以下内容

下载前如何知道文件的大小?

尝试获取下载文件大小,但出现错误

我认为这些链接会对您有所帮助。

希望能帮助到你 。

于 2013-05-29T08:40:38.053 回答