Comments (7)
As a temporary solution, please go ahead with copyFileTo(Context, DocumentFile, FileDescription, FileCallback)
:
DocumentFile source = DocumentFile.fromFile(sourceDBFile);
// Parameter requiresWriteAccess must be "true", because you're going to write files into it
DocumentFile targetFolder = DocumentFileCompat.fromFullPath(this, data.m_localImportSourcePath, DocumentFileType.ANY, true);
DocumentFileUtils.copyFileTo(source, ctx, targetFolder, null, new FileCallback());
from simplestorage.
You can override onParentConflict()
or onContentConflict()
to replace the existing folder. Read the example here:
from simplestorage.
Hi,
thx for your fast answer.
I use the copyFileTo function which does only provide a FileCallback with "onConflict", which I use to always replace the existing file
@OverRide
public void onConflict(@nonnull DocumentFile destinationFile, @nonnull FileConflictAction action) {
//super.onConflict(destinationFile, action);
// replace
action.confirmResolution(ConflictResolution.REPLACE);
}
But this i not called, because the originla file is on level up an so there's no conflict
Do you have another idea?
thx and br
Klaus
from simplestorage.
Ok, I tried to write directly in the target directory and got a permission denied, even this folder has storage access (SimpleStorage.hasStorageAccess retruns true)
The problem is that the permission is on the tree-url and not the single url, when creating DocumentFile fromFile.
It all work when I use instead of "data.m_localImportSourcePath" ("/storage/emulated/0/test") the corresponding Tree-Uri from the getPersistedUriPermissions result List
Using this, it works like exspected.
The problem is to make the Tree-Uri from the getPersistedUriPermissions list comparable with the single tree uri from the picker result. I didn't find a nice way, so I compare both last segments of the uris. no idea wether there's another better solution.
Sorry for wasting your time. Please close, if this is the wanted way to go.
br
Klaus
from simplestorage.
Hi, this is a bug. I'll fix it in v1.5.2
from simplestorage.
Hi,
thx so much.
br
Klaus
from simplestorage.
Fixed in v1.5.2
from simplestorage.
Related Issues (20)
- DocumentFile.makeFile is giving me null and app crashes on some devices HOT 7
- File access not possible after clearing app data HOT 1
- MediaStore lost access to files after uninstalling the app or clearing its data HOT 7
- CANNOT_CREATE_FILE_IN_TARGET when attempting to save on external drive HOT 1
- Cannot copy/move hidden folders HOT 10
- Creating app's custom folder in internal storage root path without any permissions HOT 3
- How to regain access to a folder of DocumentFile or DocumentFileCompat outside of callbacks? HOT 9
- How to overwrite/truncate an already existing file? HOT 2
- Is there some way to listen for changes under a tree URI or at least over a single document URI? HOT 1
- Just a question to cloud storages like GoogleDrive / Dropbox
- Request codes must be unique. File picker=3, Folder picker=0, Storage access=0, Create file=4 HOT 1
- IllegalArgumentsException: Empty Storage ID HOT 4
- Execution failed for task ':app:mergeDebugResources'
- On Android 13 device hasStorageAccess returns false HOT 1
- How can i set specific path or uri in storageHelper.openFilePicker(REQUEST_CODE_PICK_FILE_FOR_RENAME)? HOT 1
- Awesome HOT 1
- Case when permission is canceled was not handled HOT 5
- Not working on complieSDK/targetSDK 33 HOT 3
- Choosing initial Path for file picker and requestStorageAcess HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from simplestorage.