在共享首选项中获取文件大小

Posted

技术标签:

【中文标题】在共享首选项中获取文件大小【英文标题】:Get File size sore it in shared preference 【发布时间】:2014-04-27 11:51:32 【问题描述】:

有人可以帮我获取 SD 卡文件大小并以共享首选项存储: 我不知道如何阅读 URL_FileSize 并与已经将其存储在共享首选项中的内容进行比较。如果它的 URL 文件更大,则存储文件大小下载如果不忽略..

编辑:

public class MainActivity extends Activity 


public static final String PREFS_UPDATE = "sysupdate";

public static final String external_sd = Environment
        .getExternalStorageDirectory().getAbsolutePath();
public static final File sdCard = Environment.getExternalStorageDirectory();
public static final String sdcardBaseDir = sdCard.getAbsolutePath();
public static final String externalPath = "/android/data/com.example/";
public static final String csvFileName = "rsconfig.csv";

public static int file_size;

public static final String url = "http://www.example.com/appconfig.csv";

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    SharedPreferences prefs = getSharedPreferences(PREFS_UPDATE, 0);
    file_size = prefs.getInt("fileSize", 0);

    try 
        URL link = new URL(url);
        URLConnection urlConnection = link.openConnection();
        urlConnection.connect();
        int link_file_size = urlConnection.getContentLength();
        if (file_size < link_file_size) 
            // Download it

            File filenew = new File(sdcardBaseDir + externalPath
                    + csvFileName);
            int file_size = Integer.parseInt(String.valueOf(filenew
                    .length()));
            SharedPreferences.Editor editor = getPreferences(0).edit();
            editor.putLong("fileSize", file_size);
            editor.commit();

            startDownload();
        
    

    catch (Exception e) 
        e.printStackTrace();
    



private void startDownload() 
    // TODO Auto-generated method stub


提前感谢您的任何建议和 cmets...

【问题讨论】:

【参考方案1】:

您必须在url 上获取文件的文件大小。为此,您可能必须在代码中执行类似的操作。

URL link = new URL(url);
URLConnection urlConnection = link.openConnection();
urlConnection.connect();
int link_file_size = urlConnection.getContentLength();
if (file_size < link_file_size)
      //Download it

else
    //Ignore the file
    

【讨论】:

感谢 Antrromet 的重播……我现在无法访问我的工作,我稍后再测试…… 亲爱的 Antrromet 我已经用你的代码更新了我的代码,如果我做错了什么,你能看看吗?因为当我运行时没有文件下载它... link_file_size 的值是多少?如果它为 0,那么您的服务器未配置为返回文件大小。如果是这种情况,那么您应该向服务器人员询问相同的情况。

以上是关于在共享首选项中获取文件大小的主要内容,如果未能解决你的问题,请参考以下文章

python spyder编辑器更改菜单和字体大小

保存文本大小首选项

从相机胶卷和共享打开图像时,文件大小报告不同

为啥我的电脑里有一个文件夹无法访问,且大小为0,而且无法删除?

水晶报表设置纸张大小

未在服务中获取共享首选项的更新值