我有我希望的是一個相當簡單的問題。如何用Qt 5.2快速檢查網絡路徑(C++)
在Qt應用程序中,我經常訪問工作組網絡中Windows PC上的文件夾。網絡路徑的形式爲"\\NETWORKDEVICE\folder"
或沿着這些路線。要檢查是否存在的路徑,我一直在使用的QDir,像這樣:
pathString = "somepathhere";
if(QDir(pathString).exists())
workHere(pathString);
在其他情況下,我使用QUrl打開特定文件或文件夾在Windows資源管理器,像這樣:
pathString = "somepathhere";
QUrl url = pathString;
QDesktopServices::openUrl(url);
我可以混合這兩種,就像這樣,以確保路徑事先存在。
pathString = "somepathhere";
if(QDir(pathString).exists())
{
QUrl url = pathString;
QDesktopServices::openUrl(url);
{
的問題是,每當我使用的QDir ::存在(),如果路徑當前處於脫機狀態或連接不良,從我的程序運行的位置是PC,Windows將應用程序掛起那裏爲長達40秒,然後返回QDir :: exists()的答案。 (如果您嘗試在資源管理器中打開向下的網絡路徑,則會看到相同的反應;地址欄在搜索時會緩慢地以綠色填充,直到它放棄。)
這是我的程序非常長的時間等待這種迴應,所以我想知道是否有人對如何處理這種情況有更好的想法。我可能忽略了一些設置或替代功能,但是到目前爲止,我已經沒有想法。我希望使用此代碼來確保在指定的文件和文件夾脫機時訪問替代文件和文件夾。
非常感謝任何幫助,如果我錯過了網站上的任何規則或禮節,我很抱歉。
我很害怕情況會如此。我對Qt非常陌生,所以我現在正習慣使用QThreads等。我想在這方面實現一個線程的亮點比做攝像頭輸入處理要容易幾天,直到今天早上。 :d – Ketta 2014-09-22 16:22:20