Как сделать так, чтобы функция forEach l oop проверяла 2 файла, если существует, возвращает строку, если нет, возвращает имя файла - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть приложение, которое может загрузить и сохранить файл в LocalFileSystem, и мне нужно запустить 2 файла одновременно, перед началом необходимо проверить, существуют ли эти файлы или нет. я сделал что-то вроде этого, но я считаю его глупой функцией, она работает с консолью, но не работает как возвращаемая строка

function fileExist(songName,vocalName){ // i change it a bit for this example
  var downloadedFolder =  'filesystem:http://192.168.1.20:3000/persistent/downloaded/';
  var fileName = [];
  storedFiles = [];
  misingFiles = [];
  fileName[0] = ({'value':'Song','name':musicName}); 
  fileName[1] = ({'value':'Vocal','name':vocalName});
  fileName.forEach(function(item) {
    let path = downloadedFolder + item.name;
    const fName = item.value;
    window.resolveLocalFileSystemURL(path, 
    function(){
        storedFiles.push( fName )
        if ( misingFiles.length == 0 && storedFiles.length == 2) {
            return 'All';
        }
    },
    function(){
        misingFiles.push( fName )
        if ( misingFiles.length == 2 ){
            return 'Nothing';
        }
        else if ( misingFiles.length == 1 && storedFiles.length == 1){
            return misingFiles[0];
        }
    })
})}

я хочу, чтобы эта функция использовала что-то вроде этого:

if ( fileExist(songName,vocalName) == 'Nothing' )

спасибо

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Вы можете проверить, существует ли файл, используя объект FileReader из phonegap . Вы можете проверить следующее:

var reader = new FileReader();
var fileSource = <here is your file path>

reader.onloadend = function(evt) {

    if(evt.target.result == null) {
       // If you receive a null value the file doesn't exists
    } else {
        // Otherwise the file exists
    }         
};

// We are going to check if the file exists
reader.readAsDataURL(fileSource);   

Если этот действительно работает, проверьте комментарии этого поста: Как проверить наличие файла в телефонном справочнике с помощью phonegap (Это было, где я получил этот ответ от)

0 голосов
/ 14 апреля 2020

Если вы используете NodeJS, вы можете использовать fs , чтобы проверить, существует файл или нет.

if (!fs.existsSync(path)) {
    // file doens't exists
} else {
    // file does exists
}

Если вы не используете NodeJS, вы Можно настроить простой локальный сервер и отправить ему запрос, чтобы проверить, существует ли он с помощью fs.

Если вы используете электрон (то есть, какую платформу вы используете), вы можете использовать IP-адрес Electron c для отправки сообщений из основного процесса в процесс визуализации.

...