我正在使用以下技术栈开发项目:Angular、Ionic、Cordova。
在将文件下载到Dropbox时,我需要检查它是否已经存在于磁盘中。如果文件已经存在于磁盘上,我需要将其重命名。我使用(https://www.dropbox.com/developers/documentation/http/documentation#files-get_metadata)来验证文件是否存在。逻辑是这样的,如果该方法返回错误,则没有这样的文件,我会上传它。如果该方法返回元数据,则必须重命名该文件。采用这种方法,控制台会抛出一个错误(这是正常的)。有没有一种替代方法可以不向控制台报错?下面是实现此方法的代码。
async getNewFileName(fileName: string): Promise<string> {
const { name, extension } = getNameExtension(fileName);
for (let i = 0;; i++) {
const tmpName = i ? `${name}(${i}).${extension}` : fileName;
if (!await this.checkDropBoxFile(tmpName)) {
return tmpName;
}
}
return fileName;
}
async checkDropBoxFile(fileName: string): Promise<any> {
const dbx = this.getDropbox();
try {
const res = await dbx.filesGetMetadata({ path: '/' + fileName });
return res;
} catch (e) {
return false;
}
}