Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 以编程方式覆盖现有文件_Qt_Pyqt - Fatal编程技术网

Qt 以编程方式覆盖现有文件

Qt 以编程方式覆盖现有文件,qt,pyqt,Qt,Pyqt,我有一个QDialogBox,其中有一个上传文件的选项。 我可以上传文件并将其保存到文件夹中。它很好用 但如果文件夹中已经存在一个文件,我不知道如何处理这种情况 我想警告用户,同名文件已经存在 在这种情况下,我可以使用Windows API吗?(因为当我们手动保存现有文件时,会收到一条警告,我如何使用它?) 如果有人能给我指出那个文档,那就太好了。如果不使用QFileDialog,您可以使用QDir::entryList()来获取目录中的文件名 QDir dir("/path/to/direc

我有一个QDialogBox,其中有一个上传文件的选项。 我可以上传文件并将其保存到文件夹中。它很好用

但如果文件夹中已经存在一个文件,我不知道如何处理这种情况

我想警告用户,同名文件已经存在

在这种情况下,我可以使用Windows API吗?(因为当我们手动保存现有文件时,会收到一条警告,我如何使用它?)


如果有人能给我指出那个文档,那就太好了。

如果不使用QFileDialog,您可以使用
QDir::entryList()
来获取目录中的文件名

 QDir dir("/path/to/directory");
 QStringList fileNames = dir.entryList();
然后遍历文件名,可以看到是否有同名的文件。如果你需要,我也可以举个例子。它是C++,但很容易适应Python。< /P> 编辑:Smasho刚刚建议使用QDir::exists()方法。您可以使用此方法检查目录中是否存在文件名,而不是像我建议的那样进行迭代

 if(dir.exists(uploadedFileName))

如果不使用QFileDialog,可以使用
QDir::entryList()
获取目录中的文件名

 QDir dir("/path/to/directory");
 QStringList fileNames = dir.entryList();
然后遍历文件名,可以看到是否有同名的文件。如果你需要,我也可以举个例子。它是C++,但很容易适应Python。< /P> 编辑:Smasho刚刚建议使用QDir::exists()方法。您可以使用此方法检查目录中是否存在文件名,而不是像我建议的那样进行迭代

 if(dir.exists(uploadedFileName))

如果不使用QFileDialog,可以使用
QDir::entryList()
获取目录中的文件名

 QDir dir("/path/to/directory");
 QStringList fileNames = dir.entryList();
然后遍历文件名,可以看到是否有同名的文件。如果你需要,我也可以举个例子。它是C++,但很容易适应Python。< /P> 编辑:Smasho刚刚建议使用QDir::exists()方法。您可以使用此方法检查目录中是否存在文件名,而不是像我建议的那样进行迭代

 if(dir.exists(uploadedFileName))

如果不使用QFileDialog,可以使用
QDir::entryList()
获取目录中的文件名

 QDir dir("/path/to/directory");
 QStringList fileNames = dir.entryList();
然后遍历文件名,可以看到是否有同名的文件。如果你需要,我也可以举个例子。它是C++,但很容易适应Python。< /P> 编辑:Smasho刚刚建议使用QDir::exists()方法。您可以使用此方法检查目录中是否存在文件名,而不是像我建议的那样进行迭代

 if(dir.exists(uploadedFileName))
如果您使用的是,
confirmOverwrite
在默认情况下处于激活状态,因此,如果
getSaveFileName()
返回一个非空的QString,则表示用户接受覆盖该文件。另一种方法是,得到一个空的QString。 然后,您可以检查文件是否存在,并在这种情况下删除它,但您知道用户对此没有意见

如果您使用的是,
confirmOverwrite
在默认情况下被激活,因此,如果
getSaveFileName()
返回一个非空的QString,则表示用户接受覆盖该文件。另一种方法是,得到一个空的QString。 然后,您可以检查文件是否存在,并在这种情况下删除它,但您知道用户对此没有意见

如果您使用的是,
confirmOverwrite
在默认情况下被激活,因此,如果
getSaveFileName()
返回一个非空的QString,则表示用户接受覆盖该文件。另一种方法是,得到一个空的QString。 然后,您可以检查文件是否存在,并在这种情况下删除它,但您知道用户对此没有意见

如果您使用的是,
confirmOverwrite
在默认情况下被激活,因此,如果
getSaveFileName()
返回一个非空的QString,则表示用户接受覆盖该文件。另一种方法是,得到一个空的QString。
然后,您可以检查文件是否存在,并在这种情况下删除它,但您知道用户对此没有意见

保存文件时,始终存在潜在的争用条件。首先检查文件是否存在是不安全的,因为在检查和实际写入文件之间,其他一些进程可能会创建具有相同名称的文件

为了避免出现问题,必须以独占方式打开该文件,并且如果该文件已经存在,它将立即失败

如果你想把事情做好,请看以下两个答案:


保存文件时,始终存在潜在的争用情况。首先检查文件是否存在是不安全的,因为在检查和实际写入文件之间,其他一些进程可能会创建具有相同名称的文件

为了避免出现问题,必须以独占方式打开该文件,并且如果该文件已经存在,它将立即失败

如果你想把事情做好,请看以下两个答案:


保存文件时,始终存在潜在的争用情况。首先检查文件是否存在是不安全的,因为在检查和实际写入文件之间,其他一些进程可能会创建具有相同名称的文件

为了避免出现问题,必须以独占方式打开该文件,并且如果该文件已经存在,它将立即失败

如果你想把事情做好,请看以下两个答案:


保存文件时,始终存在潜在的争用情况。首先检查文件是否存在是不安全的,因为在检查和实际写入文件之间,其他一些进程可能会创建具有相同名称的文件

为了避免出现问题,必须以独占方式打开该文件,并且如果该文件已经存在,它将立即失败

如果你想把事情做好