entryInfoList()不访问上层目录
时间: 2023-08-08 15:06:40 浏览: 44
如果你想要 `entryInfoList()` 方法只返回指定目录下的文件,而不访问其上层目录,可以将 `QDir` 对象的 `QDir::NoDotAndDotDot` 属性设置为 true。这个属性会过滤掉返回列表中的 `.` 和 `..` 目录。
例如:
```cpp
QDir dir("/path/to/folder");
dir.setFilter(QDir::Files | QDir::NoDotAndDotDot);
dir.setNameFilters(QStringList() << "*.txt" << "*.pdf");
QFileInfoList fileList = dir.entryInfoList();
```
上面的代码中,`setFilter()` 方法的参数 `QDir::Files` 表示只返回文件,不包括目录。
参考文档:[QDir Class - NoDotAndDotDot](https://doc.qt.io/qt-5/qdir.html#Filter-enum)
相关问题
python导入上层目录的包
在Python中,我们可以通过将上层目录添加到sys.path中来导入上层目录的包。下面是一个简单的例子来说明这个过程:
假设我们的项目结构如下:
```
project/
- package1/
- module1.py
- package2/
- module2.py
- main.py
```
我们要在`main.py`中导入`package1`中的`module1`,虽然`module1`和`main.py`不在同一个目录下,但我们可以通过以下步骤导入上层目录的包:
1. 在`main.py`的开头将`sys`模块导入:
```python
import sys
```
2. 然后使用`os.path`模块获取上层目录的绝对路径:
```python
import os
# 获取上层目录路径
parent_dir = os.path.dirname(os.path.abspath(__file__))
```
3. 接下来将上层目录添加到`sys.path`中:
```python
sys.path.append(parent_dir)
```
4. 现在我们可以导入上层目录的包:
```python
from package1 import module1
```
通过这种方式,我们就可以在`main.py`中导入上层目录中的包了。
需要注意的是,导入上层目录的包可能会导致循环导入的问题。为了避免这种情况发生,我们需要尽量避免在导入包的时候出现相互依赖的情况,或者使用更为复杂的导入机制来处理循环导入的问题。
linux退回上层目录
在Linux中,要退回上层目录可以使用以下命令:
1. cd ..:这个命令可以让你进入上一级目录,即退回到上层目录。
2. cd /:这个命令可以让你回到根目录,即最高层目录。
3. cd -:这个命令可以让你回到上一次所在的目录。
希望以上回答能够帮到你。