我尝试在我的Android模拟器中创建文件,但是当我完成我的代码时。 我找不到我从android设备监视器创建的文件。
这是我的代码:
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.bool = true;
$scope.a = 0;
$scope.ternaryTrue = function(){
console.log("ternary executed on true");
}
$scope.ternaryFalse = function(){
$scope.a++; //creates an infinite digest loop
console.log("ternary executed on false");
}
$scope.hover = function(){
console.log("Hover");
}
}
我还添加了一些权限:
try {
if (Environment.getExternalStorageState()
.equals(Environment.MEDIA_MOUNTED)) {
System.out.println("can be read and write");
File sdFile = android.os.Environment.getExternalStorageDirectory();
//String path = sdFile.getPath() + File.separator + "DestPdf";
String path = sdFile.getPath() + "/demos/file/tmp/test";
File dirFile = new File(path);
if (!dirFile.exists()) { // if file doesn't exist
System.out.println("create file");
dirFile.mkdir(); // create file
System.out.println(dirFile.toString());
}
}
} catch (Exception ex) {
ex.toString();
}
这是我打印出来的,我可以看到root / storage / sdcard / demos / file / tmp / test
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
我错过了什么步骤?任何帮助,将不胜感激 。提前谢谢。
答案 0 :(得分:2)
你应该替换
dirFile.mkdir();
到
dirFile.mkdirs();
示例:
if (!dirFile.exists()) { // if file doesn't exist
System.out.println(dirFile.mkdir());
System.out.println(dirFile.mkdirs());
}
将为第一个产生错误[并且不会创建目录],对于第二个将为true,并且您将创建/ demos / file / tmp / test
mkdirs()还在此File表示的路径中创建父目录。
mkdirs()的javadocs:
创建此抽象路径名所指定的目录,包括any 必要但不存在的父目录。请注意,如果这样 操作失败它可能已经成功创建了一些 必要的父目录。
mkdir()的javadocs:
希望能帮到你!创建此抽象路径名命名的目录。
答案 1 :(得分:1)
在我的情况下文件就在那里,但是窗口看不到它(或者adb和windows explorer之间的集成)。
重置MOBILE是我找到的唯一解决方案......重置后,文件在Windows资源管理器中。
我建议您尝试使用cli命令查找文件:
adb shell ls sdcard/"your_path"
另外,尝试使用以下方法创建它:
.getAbsolutePath()
像这样:
File path = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "YOUR_FOLDER_NAME");
if(!path.exists())
{
path.mkdirs();
}
else
{
Log.d ("TAG","Path already exists");
}
希望有所帮助
答案 2 :(得分:1)
对于Android 6+,您需要添加代码以要求用户确认您在清单中询问的权限。
Google获取运行时权限。