相关疑难解决方法(0)

如何在SD卡上自动创建目录

我正在尝试将我的文件保存到以下位置,
FileOutputStream fos = new FileOutputStream("/sdcard/Wallpaper/"+fileName); 但是我得到了异常java.io.FileNotFoundException
但是,当我把路径保存"/sdcard/"起来的时候.

现在我假设我无法以这种方式自动创建目录.

有人可以建议如何创建directory and sub-directory使用代码吗?

android android-file

185
推荐指数
12
解决办法
26万
查看次数

如何在Android上刷新MediaStore?

这开始是Android论坛上的一般用户问题.然而,它必然是一个编程问题.这是我的问题.

Android有一项服务 - MediaScanner - 它可以随时在后台运行(我相信)SD卡已卸载并重新安装.此服务收集卡上所有媒体文件的数据,并提供可由音乐应用程序查询的SQLite DB.大多数音乐应用程序都使用此服务,因为它可以节省与扫描SD卡相关的电量消耗.

自从我开始使用android以来,我一直遇到一个问题,即即使从SD卡中删除后,与该设备同步的M3U播放列表仍保留在此SQLite DB中.虽然卡上只有大约10个m3u的文件,但我现在已经收集了大约40个播放列表,这些播放列表出现在我使用的任何音乐应用程序中.剩余的播放列表不播放,并且是空的.我可以通过从音乐应用程序中删除它们来手动删除它们,但我厌倦了这样做.必须有更好的方法来删除这些鬼播放列表.

Android Market上有两个应用程序 - SDRescan和Music Sc​​anner,据说可以做到这一点,但它们都不起作用.

我开始编写自己的应用程序来刷新或删除MediaStore数据库并从头开始,但我没有走得太远.我有一个运行以下代码的Android应用程序:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, 
        Uri.parse("file://" + Environment.getExternalStorageDirectory()))); 
Run Code Online (Sandbox Code Playgroud)

我在网上找到了一些这样的代码扫描SD卡的方法,但我没有任何运气.有小费吗?

完整代码:

package com.roryok.MediaRescan;

import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;

public class MediaRescan extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, 
                Uri.parse("file://" + Environment.getExternalStorageDirectory()))); 
        setContentView(R.layout.main);
    }

    //Rescan the sdcard after copy the file
    private void rescanSdcard() throws Exception{     
      Intent scanIntent = …
Run Code Online (Sandbox Code Playgroud)

android mediastore

50
推荐指数
3
解决办法
5万
查看次数

在Android中创建文件夹

 import java.io.File;  
    File folder = new File(Environment.getExternalStorageDirectory() + "/TollCulator");
    boolean success = true;
    if (!folder.exists()) {
        //Toast.makeText(MainActivity.this, "Directory Does Not Exist, Create It", Toast.LENGTH_SHORT).show();
        success = folder.mkdir();
    }
    if (success) {
        //Toast.makeText(MainActivity.this, "Directory Created", Toast.LENGTH_SHORT).show();
    } else {
        //Toast.makeText(MainActivity.this, "Failed - Error", Toast.LENGTH_SHORT).show();
    }
Run Code Online (Sandbox Code Playgroud)

如果它不存在,上面应该在我的SD卡中创建一个文件夹,如果它没有做任何事情.虽然toast基于条件工作,但是当它不存在时它不会创建目录.知道怎么解决吗?

Manifest看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test.testing"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-sdk
        android:minSdkVersion="6"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.test.testing.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" …
Run Code Online (Sandbox Code Playgroud)

java android file

39
推荐指数
2
解决办法
10万
查看次数

如果Android目录尚不存在,如何自动创建

我正在使用教程创建一个图库应用程序,但收到以下错误:

abc目录路径无效!请设置图像目录名AppConstant.java类

请访问以下链接以查看整个教程的代码,因为我使用相同的代码:

http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/

我在UtilsClass中找到了这段代码:

else {//图像目录为空Toast.makeText(_context,AppConstant.PHOTO_ALBUM +"为空.请加载一些图像!",Toast.LENGTH_LONG).show(); }

    } else {
        AlertDialog.Builder alert = new AlertDialog.Builder(_context);
        alert.setTitle("Error!");
        alert.setMessage(AppConstant.PHOTO_ALBUM
                + " directory path is not valid! Please set the image directory name AppConstant.java class");
        alert.setPositiveButton("OK", null);
        alert.show();
    }

    return filePaths;
Run Code Online (Sandbox Code Playgroud)

如何以编程方式创建缺少的目录而不是显示此错误对话框?

android android-sdcard

19
推荐指数
1
解决办法
3万
查看次数

Android:无法确保目录

我一直在使用" Environment.getExternalStorage()"来存储和管理文件.并且logcat该方法没有警告信息并且工作得非常好.

但是,我的项目需要使用方法" Context.getExternalFilesDir(String type)"并且有一条警告消息

ContextImpl:无法确保目录:/ storage/external_SD/Android/data /(包名称)/ files

幸运的是,File对象工作正常(读取或写入或使文件夹工作).

但我想知道如何解决该警告信息.我错过了什么吗?

storage android

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

虽然权限显然已正确设置,但无法在外部存储中创建目录

我有

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

在我的清单文件中,但是在尝试创建目录时失败了

    Log.d(LOG_STRING, android.os.Environment.getExternalStorageState() );
    java.io.File folder = new java.io.File(Environment.getExternalStorageDirectory() + java.io.File.separator + "test");
    boolean success = true;
    if (!folder.exists()) {
        success = folder.mkdir();
    }
    if (success) {
        Log.d(LOG_STRING, "Created directory");
    } else {
        Log.d(LOG_STRING, "FAILED WHILE CREATING DIRECTORY");
    }
Run Code Online (Sandbox Code Playgroud)

外部存储的状态是"已挂载",但test无法创建目录并且输出为"FAILED WHILE CREATING DIRECTORY".

在手机中浏览"应用信息",标记为我的应用程序激活"修改或删除USB存储器内容"的权限.

可能是什么原因造成的?手机的一些特殊设置?这是搭载Android 4.3(API18)的三星GT-I9506.需要注意的是,getExternalStorageDirectory它不在SD卡上,而是在内部存储器(/storage/emulated/0/)上.


更新:

在与同事谈话时,似乎这个设备在被植根之后经历了几次调整(允许特定应用程序直接在SD卡上写入).可能不值得进一步调查,我只需切换到另一台设备.我会保留设备一段时间,如果有人会出现答案,我会快速测试它是否解决了问题.


更新2 :(赏金结束)

问题仍然没有解决,但如前所述,这很可能是这个设备非常具体的.不可能在任何路径上写入,无论是外部存储还是内部存储,甚至不能在返回的路径中写入getExternalCacheDir().

java android galaxy

15
推荐指数
1
解决办法
2992
查看次数

无法在android上的外部存储上创建文件夹

我的开发手机是Nexus 5运行的Android 4.4.2.

在我的应用程序中,我试图在外部存储上创建一个文件夹,用于存储我的应用程序的调试信息.基本上它将包含应用程序执行的所有命令,因此当用户遇到问题时,我可以选择让他们从调试文件夹中发送信息进行分析.

我开始尝试将文件写入文件夹,但发现创建文件夹时出错.起初我正在使用mkdir(),然后我搬到了mkdirs()哪个也没用.

我有<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />我的清单.

以下是创建文件夹的代码:

    File folder = new File(Environment.getExternalStorageDirectory() + "/DebugData");

    String path = folder.getPath();

    if(!folder.mkdirs() || !folder.exists()){        
            Log.e(LOG_TAG, path + " failed");
        } else {
            Log.d(LOG_TAG, path + " succeeded");
        } 
Run Code Online (Sandbox Code Playgroud)

这是我也尝试过的:

    //Check SD card state
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state) || !Environment.MEDIA_MOUNTED.equals(state)) {
        Log.e(LOG_TAG, "Error: external storage is read only or unavailable");
    } else {
        Log.d(LOG_TAG, "External storage is not read only …
Run Code Online (Sandbox Code Playgroud)

java storage android file-permissions

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