我有一个常量来确定设备的存储路径。
File STORG_PTH = new File (Environment.getExternalStorageDirectory(), "/");
用户可以通过在editText中输入来确定自己的下载目录。
如果它是一个有效的路径,它会被下面的代码检查但是如果用户例如输入更多的斜杠(/)/' / storage / emulated / 0 // just / to ///我怎么能避免见'?
提前谢谢。
File TEST = Constants.STORG_PTH;
String STORAGEPTH = TEST.toString();
String Test = "/storage/emulated/0/justatest/to/see";
if (Test.startsWith(STORAGEPTH)) {
Log.d("STORAGE PATH: ", STORAGEPTH + " IS VALID!");
}
else{
Log.d("STORAGE PATH: ", STORAGEPTH + " IS INVALID!");
}
答案 0 :(得分:1)
您可以使用InputFilter
来阻止这样的特定字符:
InputFilter filter = new InputFilter() {
String blockCharacter = "/";
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
if (source != null && blockCharacter.contains(("" + source))) {
return "";
}
return null;
}
};
然后:
EditText e = (EditText)findViewById(R.id.editText1);
e.setFilters(new InputFilter[] { filter });
答案 1 :(得分:1)
为什么不简单地使用标准的Java File IO方法?像这样:
File f = new File(someCustomPath);
if (f.isDirectory()) {
// Do something ...
}
如果您这样做,您可能还想检查路径中的目录是否可以使用isReadable()
读取。