Код ниже подсчитывает файлы с определенным именем. TypeCount - это некоторое число (например, четыре).Как добавить определенные пути в список?
File dir = new File(Environment.getExternalStorageDirectory().toString(), "/AppDir/");
File[] files=dir.listFiles();
int typeCount = 0;
String type = "dog";
for (int i=0; i<files.length; i++) {
File file = files[i];
String filepath = file.getPath();
if(filepath.contains(type)){
typeCount = typeCount + 1;
}
}
В этом коде я хочу поставить все пути (File) в List<File>
. Но когда я устанавливаю typeCount в размер списка, я получаю всегда нуль вместо этого.
File dir = new File(Environment.getExternalStorageDirectory().toString(), "/AppDir/");
File dir = new File(Environment.getExternalStorageDirectory().toString(), "/AppDir/");
File[] files=dir.listFiles();
int typeCount = 0;
String typeype = "dog";
List<File> myList;
myList = new List<File>() {
@Override
public void add(int i, File file) {
}
@Override
public boolean add(File file) {
return false;
}
@Override
public boolean addAll(int i, Collection<? extends File> collection) {
return false;
}
@Override
public boolean addAll(Collection<? extends File> collection) {
return false;
}
@Override
public void clear() {
}
@Override
public boolean contains(Object o) {
return false;
}
@Override
public boolean containsAll(Collection<?> collection) {
return false;
}
@Override
public File get(int i) {
return null;
}
@Override
public int indexOf(Object o) {
return 0;
}
@Override
public boolean isEmpty() {
return false;
}
@NonNull
@Override
public Iterator<File> iterator() {
return null;
}
@Override
public int lastIndexOf(Object o) {
return 0;
}
@Override
public ListIterator<File> listIterator() {
return null;
}
@NonNull
@Override
public ListIterator<File> listIterator(int i) {
return null;
}
@Override
public File remove(int i) {
return null;
}
@Override
public boolean remove(Object o) {
return false;
}
@Override
public boolean removeAll(Collection<?> collection) {
return false;
}
@Override
public boolean retainAll(Collection<?> collection) {
return false;
}
@Override
public File set(int i, File file) {
return null;
}
@Override
public int size() {
return 0;
}
@NonNull
@Override
public List<File> subList(int i, int i1) {
return null;
}
@NonNull
@Override
public Object[] toArray() {
return new Object[0];
}
@NonNull
@Override
public <T> T[] toArray(T[] ts) {
return null;
}
};
for (int i=0; i<files.length; i++){
File file = files[i];
String filepath = file.getPath();
if(filepath.contains(type)){
myList.add(file);
}
}
typeCount = myList.size();
Что здесь не так?
(И немного не по теме - написано ли путь правильно, я не уверен, что об этом.)
Вы реализуете свой собственный 'List' (и не используете, например,' ArrayList'), это намеренно? Вы могли бы просто сделать «Список myList = новый ArrayList <>();' вместо этого. –