Я сделал так:
Uri queryUri = MediaStore.Files.getContentUri("external");
String columnData = MediaStore.Files.FileColumns.DATA;
String columnSize = MediaStore.Files.FileColumns.SIZE;
String[] projectionData = {MediaStore.Files.FileColumns.DATA};
String name = null;
String size = null;
Cursor cursor = getContentResolver().query(contentURI, null, null, null, null);
if ((cursor != null)&&(cursor.getCount()>0)) {
int nameIndex = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
int sizeIndex = cursor.getColumnIndex(OpenableColumns.SIZE);
cursor.moveToFirst();
name = cursor.getString(nameIndex);
size = cursor.getString(sizeIndex);
cursor.close();
}
if ((name!=null)&&(size!=null)){
String selectionNS = columnData + " LIKE '%" + name + "' AND " +columnSize + "='" + size +"'";
Cursor cursorLike = getContentResolver().query(queryUri, projectionData, selectionNS, null, null);
if ((cursorLike != null)&&(cursorLike.getCount()>0)) {
cursorLike.moveToFirst();
int indexData = cursorLike.getColumnIndex(columnData);
if (cursorLike.getString(indexData) != null) {
result = cursorLike.getString(indexData);
}
cursorLike.close();
}
}
return result;
В дополнительном вопросе «не создавайте его, если он не существует», вы должны проявить больше творчества, используя что-то вроде file: read_file_info:
case file:read_file_info(FileName) of
{ok, FileInfo} ->
file:write_file(FileName, "Abhimanyu", [append]);
{error, enoent} ->
% File doesn't exist
donothing
end.
Режим добавления (или режим записи) создаст файл, если он не существует ...
Функция file: write_file
ожидает, что последний аргумент будет списком из атомов iso-строки, поэтому измените вашу реализацию на файл : write_file ("/ tmp / test1.txt", "Абхиманью", [добавить]).
должен решить вашу проблему. Дополнительные примеры можно найти на TrapExit .
Думаю, вам понадобится:
file:write_file("/tmp/test1.txt", "Abhimanyu", [append]).
Думаю, вам также может потребоваться преобразовать ваши данные в двоичный.