这段代码报‘code: 13, message: 'input is not a directory'’,async saveImageToGallery(document: ProjectBitmap){ const sourceFilePath = this.file.externalApplicationStorageDirectory + `Test/abc.png`; const sourceFileName = 'abc.png'; const targetDirPath = this.file.externalRootDirectory + 'Android/Camera'; const targetFileName = 'copy.png'; try { await this.file.checkDir(this.file.externalRootDirectory, 'Android/Camera'); } catch { await this.file.createDir(this.file.externalRootDirectory, 'Android/Camera', false); } this.file.copyFile(sourceFilePath, sourceFileName, targetDirPath, targetFileName).then(res => { console.log(res); }).catch(err => { console.log(err); }); }
时间: 2024-01-10 16:04:44 浏览: 184
这个错误通常是因为`sourceFilePath`不是一个目录,而是一个文件。 `this.file.copyFile`函数的第一个参数应该是一个目录路径,而不是一个文件路径。请检查`sourceFilePath`是否正确指向一个目录,并尝试再次运行代码。
如果`sourceFilePath`确实是一个文件路径,那么可以尝试使用`this.file.getParentDirectory`函数来获取文件所在的目录。例如:
```
const sourceFilePath = this.file.externalApplicationStorageDirectory + `Test/abc.png`;
const sourceFileName = 'abc.png';
const sourceDirPath = await this.file.getParentDirectory(sourceFilePath);
const targetDirPath = this.file.externalRootDirectory + 'Android/Camera';
const targetFileName = 'copy.png';
try {
await this.file.checkDir(this.file.externalRootDirectory, 'Android/Camera');
} catch {
await this.file.createDir(this.file.externalRootDirectory, 'Android/Camera', false);
}
this.file.copyFile(sourceDirPath, sourceFileName, targetDirPath, targetFileName)
.then(res => {
console.log(res);
})
.catch(err => {
console.log(err);
});
```
这将获取`abc.png`文件所在的目录,并将其用作`this.file.copyFile`函数的第一个参数。
阅读全文