1)将目标设置为Android.permission.write_external_storage
的Android Q
2)使用GetExternalStorageDirectory
或GetExternalStoragePublicDirectory
和FileOutputStream(file)
保存文件抛出
java.io.fileNotfoundexception:/storage/emulated/0/myfolder/mytext.txt打开失败:ENOENT(没有这样的文件或目录)
3)使用GetExternalFilesDir
API,保存成功,但即使在MediaScannerConnection.ScanFile
之后也不会显示。
/storage/emulated/0/Android/data/my.com.ui/files/Download/myfolder/mytext.txt
什么是最好的方法从内存复制文件到SDCARD在android Q和刷新。
在Android API29及以上版本中,您可以使用以下代码将文件、图像和视频存储到外部存储器。
//首先,如果您使用“android.media.action.image_capture”选择文件,那么将该文件存储在应用程序专用路径(getExternalFilesDir())中,如下所示。
File destination = new File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES), fileName);
//然后使用内容提供程序访问媒体存储,如下所示。
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, fileName);
values.put(MediaStore.Images.Media.DISPLAY_NAME, fileName);
//如果需要特定mime类型,请在此处指定mime类型。否则将其保留为空,它将采用默认的文件mime类型
values.put(MediaStore.Images.Media.MIME_TYPE, "MimeType");
values.put(MediaStore.Images.Media.DATE_ADDED, System.currentTimeMillis() / 1000);
values.put(MediaStore.Images.Media.DATE_TAKEN, System.currentTimeMillis());
values.put(MediaStore.Images.Media.RELATIVE_PATH, "Pictures/" + "path"); // specify
storage path
//使用内容提供程序插入到媒体存储,它将返回URI。
Uri uri = cxt.getContentResolver().insert(MediaStore.Files.getContentUri("external"), values);
//使用该URI打开文件。
ParcelFileDescriptor descriptor = context.getContentResolver().openFileDescriptor(uri,"w"); //"w" specify's write mode
FileDescriptor fileDescriptor = descriptor.getFileDescriptor();
InputStream dataInputStream = cxt.openFileInput(privatePath_file_path);
OutputStream output = new FileOutputStream(fileDescriptor);
byte[] buf = new byte[1024];
int bytesRead;
while ((bytesRead = dataInputStream.read(buf)) > 0)
{
output.write(buf, 0, bytesRead);
}
datanputStream.close();
output.close();
}
下列每一个test选项在满足条件时,返回0(真)。 -e 检测文件是否存在 -a 检测文件是否存在 等价于 -e。不推荐使用,已被弃用[^1]。 -f 文件是常规文件(regular file),而非目录或 设备文件 -s 文件大小不为0 -d 文件是一个目录 -b 文件是一个 块设备 -c 文件是一个 字符设备 device0="/dev/sda2" # / (根目录) if [ -b
如果下面的条件成立返回真... -e 文件存在 -a 文件存在 这个和-e的作用一样. 它是不赞成使用的,所以它的用处不大。 -f 文件是一个普通文件(不是一个目录或是一个设备文件) -s 文件大小不为零 -d 文件是一个目录 -b 文件是一个块设备(软盘, 光驱, 等等.) -c 文件是一个字符设备(键盘, 调制解调器, 声卡, 等等.) -p 文件是一个管道 -h 文件是一个符号链接 -L 文
import { QuoteComponent } from './quote.component'; import { provide } from '@angular/core'; import { async, TestBed, fakeAsync, tick, } from '@angular/core/testing'; class MockQuoteService {
我使用Jest框架,并有一个测试套件。我想关闭/跳过我的一个测试。 谷歌文档并没有给我答案。 你知道要查的答案或信息来源吗?
问题内容: 我想重新讨论提出的有关在使用selenium的Nightwatch.js中测试文件上传的问题。 推荐使用两个链接将文件输入元素的值设置为url的解决方案。在我的用例中,我无法使其正常工作。即使在夜视之外,在的输入中手动设置value标签,也不会更改url。我已经在开发工具中的Chrome,Firefox和IE10上进行了尝试。 我看过的另一种解决方案是尝试模拟整个文件上传过程的击键。这
我正在创建minecraft插口插件,如何测试玩家是否为op? 例如在 我可以用。我没有得到许可。有这样的东西可以用来检查op吗?op有所有权限吗?