2015-02-18 4 views
1

Как проверить, присутствует ли файл во внешнем хранилище?Как проверить, присутствует ли файл во внешнем хранилище?

Я хочу воспроизвести видео с внешнего хранилища, если этот файл присутствует в нем, иначе загрузите его с сервера. Я попытался

if ((Environment.getExternalStorageDirectory().getPath().contains(mVideo.getCaption() + ".mp4"))) { 
    videoPath = Environment.getExternalStorageDirectory().getPath() + "/" + mVideo.getCaption() + ".mp4"; 
    Toast.makeText(getActivity(), "Playing from External storage" + videoPath, Toast.LENGTH_LONG).show(); 
} else { 
    videoPath = URLs.VIDEO_URL.replace("<fixme>", mVideo.getId()); 
    Toast.makeText(getActivity(), "Playing from Server" + videoPath, Toast.LENGTH_LONG).show(); 
} 

Проблема выше кода является то, что он всегда играет видео с сервера.

Я также tried-

if ((Environment.getExternalStorageDirectory().getPath() + "/" + mVideo.getCaption() + ".mp4")!=null) { 
    videoPath = Environment.getExternalStorageDirectory().getPath() + "/" + mVideo.getCaption() + ".mp4"; 
    Toast.makeText(getActivity(), "Playing from External storage" + videoPath, Toast.LENGTH_LONG).show(); 
} else { 
    videoPath = URLs.VIDEO_URL.replace("<fixme>", mVideo.getId()); 
    Toast.makeText(getActivity(), "Playing from Server" + videoPath, Toast.LENGTH_LONG).show(); 
} 

проблема состоит в том, что он всегда играет видео с внешнего запоминающего устройства.

+0

вы можете проверить файл существует или не метод yourfilename.exists() –

ответ

4

вы можете проверить, является ли файл существует, или не следующий код ..

File extStore = Environment.getExternalStorageDirectory(); 
File myFile = new File(extStore.getAbsolutePath() + "/book1/page2.html"); 

if(myFile.exists()){ 
    ... 
} 
+0

Спасибо, лот !!! –

+0

добро пожаловать! –

+1

@SagarLimbani приятный пример :) –

0

Вам просто нужно создать объект File и пройти свой путь к File объекту и просто использовать метод exists().

String mFilePath = Environment.getExternalStorageDirectory().getPath().contains(mVideo.getCaption() + ".mp4"); 
File mFile = new File(mFilePath); 
if (mFile !=null && mFile.exists()) { 
    Toast.makeText(getActivity(), "Playing from External storage" + mFilePath, Toast.LENGTH_LONG).show(); 
} 
0

Это будет делать трюк:

File file = new File(sdcardPath + "myvideofile.mp4"); 
if (file.exists()) { 
//Do action 
} 
0

Тест

Учитывая вы используете вид видео как этот

VideoView videoView = (VideoView) findViewById(R.id.videoView); 
. 
. 
. 
Uri videoUri; 
File videoFile =new File("your_file_path"); 
if(videoFile.exists()){ 
    videoUri =Uri.fromFile(videoFile); 
}else{ 
    videoUri =Uri.parse(videoUrl)); 
} 

videoView.setVideoURI(videoUri); 

Смежные вопросы