❶ Qt QFtp或QNetworkAccessManager中有沒有哪個成員能獲取FTP遠程文件的大小
qt5之後就不在使用QFtp QHttp,因為QNetworkaccessmanager已經替代了大部分功能,不知道digia在想啥,又不完全替換所有功能,有2種方法供用戶選擇
1現在編譯ftp源碼
2.使用第三方libcurl庫!
❷ qt文件讀取
1、Qt 作為一個通用開發庫,提供了跨平台的文件操作能力。文件操作是應用程序必不可少的部分。
2、Qt5增加了QFileDevice類。途中所涉及的類及其用途簡要說明如下:
· QFlie:訪問本地文件或者嵌入資源;
· QTemporaryFile:創建和訪問本地文件系統的臨時文件;
· QBuffer:讀寫QByteArray;
· QProcess:運行外部程序,處理進程間通訊;
· QTcpSocket:TCP協議網路數據傳輸;
· QUdpSocket:傳輸 UDP 報文;
· QSslSocket:使用 SSL/TLS 傳輸數據;
· QFileDevice:新增加的類,提供了有關文件操作的通用實現。
3、這其中,QProcess、QTcpSocket、QUdpSoctet和QSslSocket是順序訪問設備。所謂「順序訪問」,是指它們的數據只能訪問一遍:從頭走到尾,從第一個位元組開始訪問,直到最後一個位元組,中途不能返回去讀取上一個位元組;QFile、QTemporaryFile和QBuffer是隨機訪問設備,可以訪問任意位置任意次數,還可以使用QIODevice::seek()函數來重新定位文件訪問位置指針。
4、QFile主要提供了有關文件的各種操作,比如打開文件、關閉文件、刷新文件等。我們可以使用QDataStream或QTextStream類來讀寫文件,也可以使用QIODevice提供的read()、readLine()、readAll()以及write()這樣的函數。值得注意的是,有關文件本身的信息,比如文件名、文件所在目錄的名字等,則是通過QFileInfo獲取,而不是自己分析文件路徑字元串。
5、舉個例子,打開文件時,需要參數指定打開文件的模式:
Constant Value Description
QIODevice::NotOpen 0x0000 The device is not open.
QIODevice::ReadOnly 0x0001 The device is open for reading.
QIODevice::WriteOnly 0x0002 The device is open for writing.
QIODevice::ReadWrite ReadOnly | WriteOnly The device is open for reading and writing.
QIODevice::Append 0x0004 The device is opened in append mode, so that all data is written to the end of the file.
QIODevice::Truncate 0x0008 If possible, the device is truncated before it is opened. All earlier contents of the device are lost.
QIODevice::Text 0x0010 When reading, the end-of-line terminators are translated to '\n'. When writing, the end-of-line terminators are translated to the local encoding, for example '\r\n' for Win32.QIODevice::Unbuffered 0x0020 Any buffer in the device is bypassed.
❸ qt能否直接從ftp伺服器上讀取文本文件內容
用QFtp應該可以做到吧, 摘自Qt的幫助文檔, QFtp::get()時將次二哥參數設置為0,之後收到 readyRead()後可以通過read()或readAll()讀取到內存里。
int QFtp::get ( const QString & file, QIODevice * dev = 0, TransferType type = Binary )
If dev is 0, then the readyRead() signal is emitted when there is data available to read. You can then read the data with the read() or readAll() functions.
❹ QT 如何讀取共享磁碟的文件
先用「net use」命令建立到資源的連接,這個命令支持輸入用戶名密碼,用來取代在資源管理器中輸入用戶名密碼。然後QFile就可以訪問了。
❺ qt 如何獲取ftp上傳下載進度
最主要的問題是,上傳文件的函數slotPut(),無論怎樣都上傳不了文件。在工程文件夾下隨便一個記事本,上傳時寫這記事本的文件名也上傳不了。難道Qt寫文件上傳不能像php一樣一個<input type="file">就有一個控制項能點
❻ qt調用ftp cmd
qt調用ftpcmd的方法如下。
QProcess::start()接受兩個參數。
第一個是要執行的命令或者程序,這里就是notepad.exe。
第二個是一個QStringList類型的數據,也就是需要傳遞給這個程序的運行參數。注意,這個程序是需要能夠由系統找到的,一般是完全路徑。
QtCreator是一個用於Qt開發的輕量級跨平台集成開發環境。QtCreator可帶來兩大關鍵益處:提供首個專為支持跨平台開發而設計的集成開發環境(IDE),並確保首次接觸Qt框架的開發人員能迅速上手和操作。即使不開發Qt應用程序,QtCreator也是一個簡單易用且功能強大的IDE。
❼ Qt中使用QNetworkAccessManager實現ftp上傳功能
QFile file(xxx)
file.open(QIODevice::ReadOnly)
QByteArray data = file -> readAll()
QNetworkAccessManager manager;
QUrl url('ftp://xxx.xxx.xxx'); // 這里是ftp地址+文件名 一定要加文件名
url.setUsername(xxx)
url.setPassword(xxx)
manager.put(QNetworkRequest(url), data)
差不多是這樣
❽ qt中怎麼從ftp伺服器中讀取文件,並存入到sq
sqlite可以存儲BLOB格式(文件),你把 文件流保存在本地,然後用QFileInfo就可以獲取文件信息了。。。不過嘛,還是建議不要把整個文件存在資料庫中
❾ qt怎麼把windows自帶的ftp
配置好伺服器之後,便可以使用QT或者其他工具實現文件上傳和下載了。
關鍵代碼如下:
void ftp_upload::upload() { ftp = new QFtp(this); ftp->connectToHost("192.168.0.50",21); //連接到伺服器,填寫你的ip地址,這里默認埠號為21 ftp->login("test","testpasswd"); //登錄,填寫響應的用戶名和密碼 //windows自帶的ftp伺服器,客戶端上傳文件到伺服器 QFile *uploadFile = new QFile("D:/2014.txt");//要上傳到伺服器的的文件位置:D盤下的2014.txt文檔,該文檔存在於客戶端 QString des = "2014_uploadToServer.txt";//ftp伺服器「收到」客戶端上傳的文檔位置:物理路徑根目錄下的文檔2014_upload.txt uploadFile->open(QIODevice::ReadWrite); ftp->put(uploadFile,des); //windows自帶的ftp伺服器,從伺服器下載文件到客戶端 QFile *download = new QFile("D:/downloadFromServer.txt"); download->open(QIODevice::ReadWrite); ftp->get("download.txt",download);//把伺服器物理路徑根目錄下的download.txt下載到本地D盤根目錄 }