对于我正在制作的程序,我需要使Files
数组的每个索引等于不同的String
变量。我尝试使用for循环迭代每个索引,然后将其分配给不同的String
变量,但没有运气。
代码:
final String user = System.getProperty("user.home");
final String OS = System.getProperty("os.name")
if (System.getProperty("os.name").equals("Mac OS X")){
File folder = new File(user+"/example");
// if file doesn't exist, then create it
if (!folder.exists()){
folder.mkdir();
}
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
System.out.println(listOfFiles[i].getName());
} else if (listOfFiles[i].getName().equals(".DS_Store")){
listOfFiles[i].delete();
}
}
}
答案 0 :(得分:0)
如果你有一个File[]
,并且想要为数组的每个索引分配一个String
,那么你有两个选择,因为对象数组只能保存其指定类的对象和它们的类的对象& #39;的子类。
您的第一个选择是以Object[]
而不是File[]
开头。这样,假设您有n个文件
Object[] filesThenStrings = new Object[n];
//Populate filesThenStrings with File objects here,
//this is legal since all classes are a subclass of Object
//and java does upcasting for you
for(int i = 0; i < n; i++) {
filesThenStrings[i] = someString; //where this is the string you
//want to replace the i-th file with
}
否则,你可以这样做。再假设n个文件,
File[] files = new File[n];
//populate here
String[] correspondStrings = new String[n];
for(int i = 0; i < n; i++) {
correspondStrings[i] = someString; //where someString pertains to
//files[i]
}