从SD卡读取文件并将其加载到WebView

时间:2014-03-20 05:06:34

标签: android html android-webview android-sdcard

我正在尝试从sd卡加载webView中的html文件,它无法正常工作,目录存在于SD卡中以及文件中。这是我试过的代码。

public void CheckReg()
    {
        File file = new File(getExternalCacheDir(), "Reginfo/input/register.html" );
        if (file.exists())
        {
            index.loadUrl("file:///sdcard/Reginfo/input/register.html");
            Toast.makeText(mContext, "File Exists", Toast.LENGTH_SHORT).show(); 
        }
    }

3 个答案:

答案 0 :(得分:2)

这样做

File file = new File(Environment.getExternalStorageDirectory()+"/Reginfo/input/register.html");
    if (file.exists())
    {   
      index.loadUrl("file://"+Environment.getExternalStorageDirectory()+"/Reginfo/input/register.html");
不要忘了 添加清单

的权限

答案 1 :(得分:0)

应设置为,

 public void CheckReg()
 {


   File file = new File(Environment
                                         .getExternalStorageDirectory()
                                    .getAbsolutePath()+"Reginfo/input/register.html" );
    if (file.exists())
    {
        index.loadUrl("file:///"+file);
        Toast.makeText(mContext, "File Exists", Toast.LENGTH_SHORT).show(); 
    }
}

答案 2 :(得分:0)

你不应该像那样硬编码SD卡的目录。它通常位于/ mnt / sdcard /但是从来没有保证过这个,你可以像这样写它。

在从SD卡加载文件之前,请确保已安装SD卡。

您可以使用以下内容:

if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
    Log.d(TAG, "No SDCARD");
} else {
    index.loadUrl("file://"+Environment.getExternalStorageDirectory()+"/Reginfo/input/register.html");
}