mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-18 05:18:39 +08:00
Merge pull request #1888 from NativeScript/bektchiev/fix-create-file
Ensure parent directory when creating a new file
This commit is contained in:
@ -639,3 +639,13 @@ export function test_UnlockAfterWrite(done) {
|
|||||||
}).then(() => done())
|
}).then(() => done())
|
||||||
.catch(done);
|
.catch(done);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function test_CreateParentOnNewFile(done) {
|
||||||
|
var documentsFolderName = fs.knownFolders.documents().path;
|
||||||
|
var tempFileName = fs.path.join(documentsFolderName, "folder1", "folder2", "Test_File_Create_Parent.txt");
|
||||||
|
var file = fs.File.fromPath(tempFileName);
|
||||||
|
file.writeText("Hello World!").then(() => {
|
||||||
|
return fs.knownFolders.documents().getFolder("folder1").remove();
|
||||||
|
}).then(() => done())
|
||||||
|
.catch(done);
|
||||||
|
}
|
@ -327,6 +327,7 @@ export class FileSystemAccess {
|
|||||||
if (isFolder) {
|
if (isFolder) {
|
||||||
created = javaFile.mkdirs();
|
created = javaFile.mkdirs();
|
||||||
} else {
|
} else {
|
||||||
|
javaFile.getParentFile().mkdirs();
|
||||||
created = javaFile.createNewFile();
|
created = javaFile.createNewFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,11 +52,12 @@ export class FileSystemAccess {
|
|||||||
var exists = fileManager.fileExistsAtPath(path);
|
var exists = fileManager.fileExistsAtPath(path);
|
||||||
|
|
||||||
if (!exists) {
|
if (!exists) {
|
||||||
if (!fileManager.createFileAtPathContentsAttributes(path, null, null)) {
|
var parentPath = this.getParent(path, onError).path;
|
||||||
|
if (!fileManager.createDirectoryAtPathWithIntermediateDirectoriesAttributesError(parentPath, true, null) ||
|
||||||
|
!fileManager.createFileAtPathContentsAttributes(path, null, null)) {
|
||||||
if (onError) {
|
if (onError) {
|
||||||
onError(new Error("Failed to create folder at path '" + path + "'"));
|
onError(new Error("Failed to create file at path '" + path + "'"));
|
||||||
}
|
}
|
||||||
|
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user