- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
所以,基本上我有这段代码(所有功劳都归功于 mburhman 的文件资源管理器 - https://github.com/mburman/Android-File-Explore):
private File path = new File(Environment.getExternalStorageDirectory() + "");
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
loadFileList();
showDialog(DIALOG_LOAD_FILE);
Log.d(TAG, path.getAbsolutePath());
readDir = (Button) findViewById(R.id.btnReadDirectory);
readDir.setOnClickListener(this);
}
private void loadFileList() {
try {
path.mkdirs();
} catch (SecurityException e) {
Log.e(TAG, "unable to write on the sd card ");
}
if (path.exists()) {
FilenameFilter filter = new FilenameFilter() {
@Override
public boolean accept(File dir, String filename) {
// TODO Auto-generated method stub
File sel = new File(dir, filename);
// Filters based on whether the file is hidden or not
return (sel.isFile() || sel.isDirectory())
&& !sel.isHidden();
}
};
String[] fList = path.list(filter);
fileList = new Item[fList.length];
for (int i = 0; i < fList.length; i++) {
fileList[i] = new Item(fList[i], R.drawable.file_icon);
File sel = new File(path, fList[i]);
if (sel.isDirectory()) {
fileList[i].icon = R.drawable.directory_icon;
Log.d("DIRECTORY", fileList[i].file);
} else {
Log.d("FILE", fileList[i].file);
}
}
if (!firstLvl) {
Item temp[] = new Item[fileList.length + 1];
for (int i = 0; i < fileList.length; i++) {
temp[i + 1] = fileList[i];
}
temp[0] = new Item("Up", R.drawable.directory_up);
fileList = temp;
}
} else {
Log.e(TAG, "path does not exist");
UIHelper.displayText(this, R.id.tvPath, "Path does not exist");
}
adapter = new ArrayAdapter<Item>(this,
android.R.layout.select_dialog_item, android.R.id.text1,
fileList) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = (TextView) view
.findViewById(android.R.id.text1);
textView.setCompoundDrawablesWithIntrinsicBounds(
fileList[position].icon, 0, 0, 0);
int dp5 = (int) (5 * getResources().getDisplayMetrics().density + 0.5f);
textView.setCompoundDrawablePadding(dp5);
return view;
}
};
}
抱歉,时间太长了。我只想问为什么不能通过将文件路径更改为:
File path = getExternalFilesDir(null);
或者您如何实现它,以便我可以将我的文件存储到我预留的外部 SD 卡中。
编辑:
实际上,自从我关注了这个 blog 之后,我发现我指向的是 assets 文件夹。发布。
这是指向 Assets 文件夹的方法 https://gist.github.com/huxaiphaer/268b94a0e7959822fa679a7523701187
最佳答案
这基本上是可能的,但您的应用程序的外部存储位置在不同的设备上是不同的(主要是因为某些设备将外部存储作为其集成存储的一部分)。我从 SO 的某个地方获取了下面的代码,它对我有用:
private File getAbsoluteFile(String relativePath, Context context) {
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
return new File(context.getExternalFilesDir(null), relativePath);
} else {
return new File(context.getFilesDir(), relativePath);
}
}
关于java - getExternalStorageDirectory() 到 getExternalFilesDir(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18169429/
假设我有一个类似记事本的应用程序,您可以在其中创建和保存文本文档。 我希望我的用户能够访问这些文件(例如,以便他们可以将它们复制到计算机上)。 在 API 29 之前,getExternalStora
我目前使用 Environment.getExternalStorageDirectory() 获取一个位置,我可以在其中临时存储一些数据,然后在使用后将其删除。此数据的范围为 1-100MB。 这工
我正在尝试添加 OBB 文件支持,但遇到了一个奇怪的情况。当我调用 getExternalStorageDirectory() 时,它返回的路径在我的设备上不存在。 我在我的应用开始时调用它: Log
使用一些非常简单的 android 代码,我试图根据以下逻辑访问文件夹: public void try_to_navigate_local_dir(){ Environment e = ne
我试图通过 Environment.getExternalStorageDirectory() 从 SD 卡获取所有文件列表,但我从硬件存储中获取了返回列表。我试过硬编码,但结果是一样的。知道是什么原
在 SDK 29 (Aka Android_Q) 中,使用 Environment.getExternalStorageDirectory() 方法访问外部存储已弃用,不再返回可访问的文件。 getE
我正在编写一个 Android 应用程序,它可以拍摄一些照片,并希望将它们全部保存在与我的应用程序关联的唯一目录中。 此目录应该可以从标准图库访问,以便用户稍后(当应用程序不一定运行时)检查拍摄的图片
我正在尝试在手机的外部存储(SD 卡)中创建文件。 文件 F = new File(Environment.getExternalStorageDirectory() + File.separator
我有下一种情况:Android 4.1,设备没有外部 SD 卡。以下代码: File dir = new File( Environment.getExternalStorageDirectory()
我再次需要你的帮助。我有简单照片应用程序的代码,但此代码将编辑后的图像保存在 SD 卡上,但我想更改此代码以将图像保存在手机的内存中。 private File captureImage() {
我对 getExternalStorageDirectory () 和 getExternalStorageState () 之间的区别有点困惑。 对于 getExternalStorageState
当我使用 Environment.getExternalStorageDirectory(); 打印 SD 存储路径时,它返回 storage/emulated/0但是当我使用 DDMS 浏览 SD
所以,基本上我有这段代码(所有功劳都归功于 mburhman 的文件资源管理器 - https://github.com/mburman/Android-File-Explore): private
我是 android 编程的新手。 我正在尝试使用 getExternalStorageDirectory() 获取我的 Nexus 设备上文件的路径但它根本不返回任何文件 代码: File path
我想在我的应用程序中读取图像并将图像写入外部存储。根据我的阅读,以下是获取目录句柄的正确方法。 File externalStorageDir = Environment.getExternalSt
从 API 级别 8 开始,Android 似乎重新定义了“外部”存储是什么。通读http://developer.android.com/reference/android/os/Environme
如何使用 Environment.getExternalStorageDirectory() 从 SD 卡读取存储的图像,或者有更好的方法吗? 最佳答案 Environment.getExternal
这个问题在这里已经有了答案: getExternalStoragePublicDirectory deprecated in Android Q (7 个答案) 关闭 2 年前。 在 android
我正在尝试模拟函数 getExternalStorageDirectory,但总是返回错误: “UnsupportedError(不支持的操作:功能仅在 Android 上可用)” 我正在使用 set
我正在尝试获取 Android 设备的内部存储路径。 由于大多数设备延迟关闭使用 Environment.getExternalStorageDirectory().getPath(); 返回内部存储
我是一名优秀的程序员,十分优秀!