我一直在尝试以/sdcard编程方式创建一个目录,但它无法正常工作.下面的代码总是输出directory not created.
boolean success = (new File("/sdcard/map")).mkdir();
if (!success) {
Log.i("directory not created", "directory not created");
} else {
Log.i("directory created", "directory created");
}
Run Code Online (Sandbox Code Playgroud) 我无法在Android外部存储目录中创建文件夹.
我在清单上添加了许可,
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
String Path = Environment.getExternalStorageDirectory().getPath().toString()+ "/Shidhin/ShidhiImages";
System.out.println("Path : " +Path );
File FPath = new File(Path);
if (!FPath.exists()) {
if (!FPath.mkdir()) {
System.out.println("***Problem creating Image folder " +Path );
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用教程创建一个图库应用程序,但收到以下错误:
abc目录路径无效!请设置图像目录名AppConstant.java类
请访问以下链接以查看整个教程的代码,因为我使用相同的代码:
我在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)
如何以编程方式创建缺少的目录而不是显示此错误对话框?
app无法在app拥有的目录中的外部存储folder/file上创建android 5(HTC HTC6525LVW os version: 5.0.1).
父文件夹由[getExternalFilesDirs(String type)][1]方法返回.
Sdcard 安装.
有其他人有这个问题或建议如何解决?
(不幸的是我没有这个设备来测试它)
编辑:从一个用户我知道,在此错误之前,她加密了SD卡,然后对其进行了格式化.
android android-file android-permissions android-5.0-lollipop
我有
<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卡上写入).可能不值得进一步调查,我只需切换到另一台设备.我会保留设备一段时间,如果有人会出现答案,我会快速测试它是否解决了问题.
问题仍然没有解决,但如前所述,这很可能是这个设备非常具体的.不可能在任何路径上写入,无论是外部存储还是内部存储,甚至不能在返回的路径中写入getExternalCacheDir().
更新有很多其他帖子询问如何在Android中获取屏幕截图但似乎没有一个完整的答案如何这样做.最初我把这个问题发布为一个问题,因为我在试图打开一个流到帧缓冲区时遇到了一个特定的问题.现在我已经交换了将Frame Buffer转储到一个文件中,所以我更新了我的帖子以显示我是如何到达那里的.为了参考(和确认),我找到了从这篇文章发送FrameBuffer到一个文件的命令(不幸的是他没有提供他如何达到这一点).我只是想知道如何将从Frame Buffer中提取的原始数据转换为实际的图像文件.
我的目的是在Android设备上完全转储实际屏幕.我没有使用adb桥就能找到这样做的唯一方法就是直接访问系统的Frame Buffer.显然,这种方法需要设备上的root权限以及运行它的应用程序!幸运的是,出于我的目的,我可以控制设备的设置方式,并使设备具有root权限,并且提供给我的应用程序是可行的.我的测试目前正在运行2.2.3的旧Droid上进行.
我从/sf/answers/487923691/找到了我的第一个如何处理它的提示.经过一番研究后,我发现另一篇文章描述了如何以root身份正确运行shell命令.他们用它来执行重启,我用它将当前帧缓冲区发送到实际文件.我目前的测试只是通过ADB和基本Activity(每个都提供root)来实现.我将从后台运行的服务进行进一步测试,更新来!这是我的整个测试活动,可以将当前屏幕导出到文件:
public class ScreenshotterActivity extends Activity {
public static final String TAG = "ScreenShotter";
private Button _SSButton;
private PullScreenAsyncTask _Puller;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
_SSButton = (Button)findViewById(R.id.main_screenshotButton);
_SSButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (_Puller != null)
return;
//TODO: Verify that external storage is available! Could always use internal instead...
_Puller = new PullScreenAsyncTask();
_Puller.execute((Void[])null);
}
});
} …Run Code Online (Sandbox Code Playgroud) 我搜索了这些问题,但无法解决。请帮我解决这个问题
那是我的 mkdir 代码:
File _sdcardPath = Environment.getExternalStorageDirectory(); // sdcard path is /storage/emulate/0
File _dirPath = new File(_sdcardPath, "CreateFolder");
boolean _isCreate = _dirPath.mkdir();
if (_isCreate) {
tvResult.append(_dirPath + " mkdir success");
} else {
tvResult.append(_dirPath + " mkdir fail");
}
Run Code Online (Sandbox Code Playgroud)
我的 manifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.createfolder"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
我的设备android版本是:5.1.1,12GB可用空间,代码在5.0下正常运行
在运行应用程序时,我遇到了这个异常: …
是否可以使用 init rc 脚本在 android 源代码中创建空文件,就像我们创建文件夹一样。mkdir /tmp 创建文件夹,但 touch /tmp/test 不执行任何操作。
请帮忙
这是我的代码:
boolean success = false;
Log.d(TAG, Environment.getExternalStorageDirectory() + "/" + Environment.DIRECTORY_PICTURES + "/myFolder" );
myFolder = new File( Environment.getExternalStorageDirectory() + "/" + Environment.DIRECTORY_PICTURES + "/myFolder" );
if( myFolder.exists() ){
Log.d(TAG, "FOLDER EXISTS");
}else{
success = myFolder.mkdir();
if( success ){
// Do something on success
} else {
// Do something else on failure
throw new RuntimeException("File Error in writing new folder");
}
Run Code Online (Sandbox Code Playgroud)
怎么了?
运行它将HTC Desire HD - android 2.3.5导致此输出:
D/DVA_HLUI Application(25723): /mnt/sdcard/Pictures/myFolder
E/AndroidRuntime(25723): FATAL EXCEPTION: main
E/AndroidRuntime(25723): java.lang.RuntimeException: …Run Code Online (Sandbox Code Playgroud) 我想在一个文件夹中的SD卡上备份我的收件箱短信.但我无法在SD卡上制作文件夹我正在使用此代码
backup=(Button)findViewById(R.id.backup);
backup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
backupSMS();
}
public ArrayList<String> smsBuffer = new ArrayList<String>();
String smsFile = "SMS-" + SystemClock.currentThreadTimeMillis() + ".csv";
private void backupSMS() {
smsBuffer.clear();
Uri mSmsinboxQueryUri = Uri.parse("content://sms/inbox");
Cursor cursor1 = getContentResolver().query(
mSmsinboxQueryUri,
new String[] { "_id", "thread_id", "address", "person", "date",
"body", "type" }, null, null, null);
//startManagingCursor(cursor1);
String[] columns = new String[] { "_id", "thread_id", "address", "person", "date", "body",
"type" };
if (cursor1.getCount() > 0) …Run Code Online (Sandbox Code Playgroud)