Intent tostart = new Intent(Intent.ACTION_VIEW);
tostart.setDataAndType(Uri.parse(video_path+".***"), "video/*");
startActivity(tostart);
我们说我有一个文件路径
/mnt/sdcard/video/my_birthday_moovie001
' my_birthday_moovie001'可以是.mkv
,.mpg
或.mkv
。我试图添加"。***"到文件路径但我仍然无法打开文件。
答案 0 :(得分:1)
好吧,我读了你在db中存储你的路径的注释没有扩展,有很多扩展存在,所以android不能自动选择扩展你必须创建一些方法来检测扩展。
以下是一种在您的情况下最匹配的强大方式,但在已知扩展名的正确情况下不推荐
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors import LinkExtractor
from toster.items import DjangoItem
class DjangoSpider(CrawlSpider):
name = "django"
allowed_domains = ["www.toster.ru"]
start_urls = [
'http://www.toster.ru/tag/django/questions',
]
rules = [
Rule(LinkExtractor(
allow=['/tag/django/questions\?page=\d']),
callback='parse_item',
follow=True)
]
def parse_item(self, response):
selector_list = response.css('div.thing')
for selector in selector_list:
item = DjangoItem()
item['title'] = selector.xpath('div/h2/a/text()').extract()
yield item
现在在你的代码中播放一首歌
public String chk_path(String filePath)
{
//create array of extensions
String[] ext=new String[]{".mkv",".mpg"}; //You can add more as you require
//Iterate through array and check your path which extension with your path exists
String path=null;
for(int i=0;i<ext.Length;i++)
{
File file = new File(filePath+ext[i]);
if(file.exists())
{
//if it exists then combine the extension
path=filePath+ext[i];
break;
}
}
return path;
}
答案 1 :(得分:1)
我正在发表评论
您可以比较路径是否与任何文件名匹配(它不包含扩展名),然后如果它匹配,就可以得到它。
你可以这样做:
获取目录路径
File extStore = Environment.getExternalStorageDirectory();
在我放置my_birthday_moovie001
的示例中设置文件名unnamed
,但将其更改为
String NameOfFile = "unnamed";
添加videos
,我把它Downloads
但你可以改变它
String PathWithFolder = extStore + "/Download/";
创建一个列出路径中所有文件的方法
private List<String> getListFiles(File parentDir) {
ArrayList<String> inFiles = new ArrayList<String>();
File[] files = parentDir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
inFiles.addAll(getListFiles(file));
} else {
String AbsolutePath = file.getAbsolutePath();
//Get the file name ex : unnamed.jpg
String nameofFile = AbsolutePath.substring(AbsolutePath.lastIndexOf("/") + 1, AbsolutePath.length());
//Remove the .jpg --> Output unnamed
String fileNameWithoutExtension = nameofFile.substring(0, nameofFile.lastIndexOf('.'));
//Add each file
inFiles.add(fileNameWithoutExtension);
}
}
return inFiles;
}
您获得了执行此操作的文件的名称
List<String> files = getListFiles(new File(PathWithFolder));
只需添加for
即可查找与您的file
for (int i = 0; i<=files.size()-1; i++){
if(PathWithFolder.equals(files.get(i))) {
Toast.makeText(MainActivity.this, "You got it!", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(MainActivity.this, "You don't.", Toast.LENGTH_SHORT).show();
}
}
如果您想要获取路径并执行@Zain Ul Abidin
建议并在getListFiles()
方法上进行比较,请添加以下内容:
String fileExtension = nameofFile.substring(nameofFile.lastIndexOf("."));
希望它有所帮助。
答案 2 :(得分:0)
从另一个问题:
考虑来自Apache Ant的DirectoryScanner:
DirectoryScanner scanner = new DirectoryScanner();
scanner.setIncludes(new String[]{"**/*.java"});
scanner.setBasedir("C:/Temp");
scanner.setCaseSensitive(false);
scanner.scan();
String[] files = scanner.getIncludedFiles();
你需要引用ant.jar(对于ant 1.7.1,大约1.3 MB)。
然后,运行文件数组并检查 if files [i] .include(yourfile) yourfile = files [i]
答案 3 :(得分:0)
您可以尝试这种方式,首先获取文件名和扩展名,然后最后进行比较和实现。像这样:
示例文件名是04chamelon,扩展名是.png:
File f = new File("/mnt/storage/sdcard/Pictures/04chameleon");
File yourDir = new File("/mnt/storage/sdcard/Pictures");
nametwo = f.getName();
for (File fa : yourDir.listFiles()) {
if (fa.isFile())
fa.getName();
String path = fa.getName(); // getting name and extension
filextension = path.substring(path.lastIndexOf(".") + 1); // seperating extension
name1 = fa.getName();
int pos = name1.lastIndexOf(".");
if (pos > 0) {
name1 = name1.substring(0, pos);
}
}
if (name1.equals(nametwo)) {
Intent tostart = new Intent(Intent.ACTION_VIEW);
tostart.setDataAndType(Uri.parse(f + "." + filextension), "image/*");
//tostart.setDataAndType(Uri.parse(f + "." + filextension), "video/*");
startActivity(tostart);
}
答案 4 :(得分:0)
使用最新的ContentResolver
,您可以使用检测文件类型的contentResolver.getType(uri)
功能轻松地完成这项工作。
private fun getIntentForFile(intent: Intent, filePath: String, context: Context): Intent {
val uri = FileProvider.getUriForFile(
context,
context.applicationContext.packageName + ".fileprovider",
File(filePath)
)
intent.putExtra(Intent.EXTRA_STREAM, uri)
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
intent.setDataAndType(uri, context.contentResolver.getType(uri))
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
return intent
}