发现物理机的隐藏文件挺多的,于是设置默认隐藏.开头的隐藏文件,关于file类获取当前目录下的子文件,在Windows上默认按文件名排序,但是在Android里却没有,所以要对文件和文件夹以及名字和文件夹进行排序,考虑到我们可能要优先找文件,所以,文件就显示在文件夹前

master
ThankVinci 4 years ago
parent aa488274e7
commit 63314b320d

@ -0,0 +1,28 @@
package com.thankvinci.CloudKey.Files;
import java.io.File;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class FileUtils {
//按照文件,文件夹,文件名次序的顺序进行排序,参考:https://blog.csdn.net/qq_34246164/article/details/111785553
public static void orderByName(File[] files){
List fileList = Arrays.asList(files);
Collections.sort(fileList, new Comparator<File>() {
@Override
public int compare(File f1,File f2){
if(f1.isDirectory() && f2.isFile()){
return 0;
}
if(f2.isDirectory() && f1.isFile()){
return -1;
}
return f1.getName().compareTo(f2.getName());
}
});
}
//获取文件的MD5码值
public static void getFileMD5(File f){}
}

@ -12,6 +12,7 @@ import androidx.recyclerview.widget.StaggeredGridLayoutManager;
import com.thankvinci.CloudKey.Files.FileAdapter; import com.thankvinci.CloudKey.Files.FileAdapter;
import com.thankvinci.CloudKey.Files.FileItem; import com.thankvinci.CloudKey.Files.FileItem;
import com.thankvinci.CloudKey.Files.FileUtils;
import com.thankvinci.CloudKey.R; import com.thankvinci.CloudKey.R;
import java.io.File; import java.io.File;
@ -51,6 +52,7 @@ public class FileManageFragment extends Fragment {
Toast.makeText(getActivity(),root.getAbsolutePath()+"",Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(),root.getAbsolutePath()+"",Toast.LENGTH_SHORT).show();
Toast.makeText(getActivity(),root.canRead()+"",Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(),root.canRead()+"",Toast.LENGTH_SHORT).show();
files = root.listFiles(); files = root.listFiles();
FileUtils.orderByName(files);
path_edit.setText("/storage/emulated/0"); path_edit.setText("/storage/emulated/0");
initDirectory(); initDirectory();
} }
@ -65,14 +67,15 @@ public class FileManageFragment extends Fragment {
private void initDirectory(){ private void initDirectory(){
String filename,suffix; String filename,suffix;
boolean isFile,isZip; boolean isFile,isZip;
int lastIndex; int lastIndex,index;
for(int i = 0;i < files.length;i++){ for(int i = 0;i < files.length;i++){
filename = files[i].getName(); filename = files[i].getName();
isFile = files[i].isFile(); isFile = files[i].isFile();
index = filename.indexOf(".");
if (isFile){ if (isFile){
lastIndex = filename.lastIndexOf("."); lastIndex = filename.lastIndexOf(".");
if(lastIndex == -1){ if(lastIndex == -1){
suffix = "."; //当文件没有后缀时,不过没什么实际含义就对了 suffix = ""; //当文件没有后缀时,不过没什么实际含义就对了
}else { }else {
suffix = filename.substring(lastIndex); suffix = filename.substring(lastIndex);
} }
@ -84,8 +87,12 @@ public class FileManageFragment extends Fragment {
}else{ }else{
isZip = false; isZip = false;
} }
FileItem fitem = new FileItem(filename,isFile,isZip); if(index != 0){ //隐藏.开头的隐藏文件
fileItemList.add(fitem); FileItem fitem = new FileItem(filename,isFile,isZip);
fileItemList.add(fitem);
}else{
}
} }
} }
} }

@ -179,6 +179,10 @@ implementation 'androidx.navigation:navigation-ui:2.2.2'
**发现当物理机WiFi网络连不上互联网或者没开数据时会闪退,所以要通过广播机制判断当前的网络状态**,之后再改 **发现当物理机WiFi网络连不上互联网或者没开数据时会闪退,所以要通过广播机制判断当前的网络状态**,之后再改
添加了文件布局
代码参考《第二行代码》中对recyclerview的瀑布流应用,需要创建布局除了放置recyclerview的fragment外还需要一个表示recyclerview子项的file文件布局(图标+文字),图标是请一个熟人帮忙设计的.然后图标pressed状态下有一个遮罩,也是要写一个selector来修改样式,所以同样在colors文件中添加我要使用的颜色
代码参考《第二行代码》中对recyclerview的瀑布流应用,需要创建布局除了放置recyclerview的fragment外还需要一个表示recyclerview子项的file文件布局(图标+文字),图标是请一个熟人帮忙设计的.然后图标pressed状态下有一个遮罩,也是要写一个selector来修改样式,所以同样在colors文件中添加我要使用的颜色 **2021/6/11**
发现物理机的隐藏文件挺多的,于是设置默认隐藏.开头的隐藏文件,关于file类获取当前目录下的子文件,在Windows上默认按文件名排序,但是在Android里却没有,所以要对文件和文件夹以及名字和文件夹进行排序,考虑到我们可能要优先找文件,所以,文件就显示在文件夹前
Loading…
Cancel
Save