我希望能够遍历文件包,就好像该包是一个文件夹一样。
类似下面的内容(脚本是java包):
File scriptFolder = new File("scripts").getAbsoluteFile();
出现的包没有像文件夹一样被对待。如果我对路径C:\Users\...\project_folder\...\scripts
进行硬编码,则File.isFile()
方法将为包返回false。如果我做new File (C:\Users\...\project_folder\...\scripts\script).isFile()
,我会成真。
我想获取该文件夹的文件,以便获取该文件夹中文件的列表并进行遍历。
答案 0 :(得分:1)
#include <DHT.h>
#include <DHT_U.h>
#include <ArduinoJson.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
int humidity, temperature;
StaticJsonDocument<50> doc;
JsonObject object;
void setup()
{
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("Begin");
dht.begin();
object = doc.to<JsonObject>();
}
void loop()
{
humidity = dht.readHumidity();
temperature = dht.readTemperature();
object["ID"] = "Node01";
object["humidity"] = humidity;
object["temperature"] = temperature;
serializeJson(doc, Serial);
Serial.println("");
delay(2000);
}
方法仅在引用普通的简普通文件时才返回true。如果要引用目录,它将返回false。尝试.isFile()
或可能的.isDirectory()
。
还是不要;没有真正的需求:
.exists()
答案 1 :(得分:1)
官方的Javadocs对此File#isFile()
说:
测试此抽象路径名表示的文件是否为普通文件。如果文件不是目录,并且满足其他与系统有关的条件,则它是 normal 。由Java应用程序创建的任何非目录文件都保证是普通文件。
您可以使用File#isDirectory()
检查它是否是目录,然后使用File#listFiles()
列出它的内容。
答案 2 :(得分:0)
除非我在您的问题中缺少某些内容,否则C:\ Users ... \ project_folder ... \ scripts是目录,因此isFile()将返回false,因为它不是文件。