避免无效的目录路径

时间:2014-12-24 14:01:04

标签: android

我有一个常量来确定设备的存储路径。

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!");
    }

2 个答案:

答案 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()读取。