你将会学到:
SyberOS 的应用程序对文件的访问有严格的权限控制,应用程序只能访问沙盒内(自己应用程序内)的文
件,应用程序的数据路径在 /data/data/symbol 下(symbol 为应用程序的 sopid)。
如果想访问 SD 卡的数据,请在 sopconfig.xml 中如下的增加权限声明:
<uses-permission syberos:name="syberos.permission.ACCESS_STORAGE"/>
QFile file("/home/user/test.txt");
file.open(QIODevice::WriteOnly);
file.close();
常用的文件打开的模式:
模式名称 | 含义 |
---|---|
QIODevice::ReadOnly | 只读模式 |
QIODevice::WriteOnly | 只写模式 |
QIODevice::ReadWrite | 可读可写 |
QIODevice::Append | 追加模式 |
QIODevice::Text | 文本模式 |
QFile file("/home/user/test.txt");
if (file.open(QIODevice::WriteOnly)){
char context[256];
file.write(context, sizeof(context));
file.close();
}
文件的写入接口如下:
接口名称 | 含义 |
---|---|
qint64 write(const char * data, qint64 maxSize) | 将 data 的内容写入到文件,最大写入长度为 maxSize |
qint64 write(const char * data) | 将 data 的内容写入到文件 |
qint64 write(const QByteArray & byteArray) | 将 byteArray 的内容写入到文件 |
QFile file("/home/user/test.txt");
if (file.open(QIODevice::ReadOnly)){
QByteArray bytes = file.readAll();
file.close();
}
文件的读取接口如下:
接口名称 | 含义 |
---|---|
qint64 read(char * data, qint64 maxSize) | 读取文件内容到 data,最大读取长度为 maxSize |
QByteArray read(qint64 maxSize) | 读取文件内容,最大读取长度为 maxSize |
QByteArray readAll() | 读取文件全部内容 |
qint64 readLine(char * data, qint64 maxSize) | 读取文件中的一行到 data,最大读取长度为 maxSize |
QByteArray readLine(qint64 maxSize = 0) | 读取文件中的一行,最大读取长度为 maxSize |
QFile file("/home/user/test.txt");
bool result = file.rename("rename_test.txt");
result = file.remove();
if(result){
...
}