2011-02-06 32 views

Trả lời

21

Chắc chắn, QDir::rename() theo truyền thống cũ của Unix/POSIX để gọi tên này.

Điều này có ý nghĩa nếu bạn nghĩ về tệp có đường dẫn đầy đủ: các nút in cơ bản chỉ được chỉ định một nhãn đường dẫn/tệp khác.

+2

Ngoài ra còn có QFile :: rename() có thể được sử dụng. – dave

7

Bạn sẽ sử dụng QDir::rename() nhưng hãy cẩn thận với các trường hợp đặc biệt khi rename() có thể thất bại:

Trên hầu hết các hệ thống tập tin, rename() không chỉ khi oldName không tồn tại, nếu newNameoldName không nằm trong cùng một phân vùng hoặc nếu tệp có tên là đã tồn tại. Tuy nhiên, cũng có các lý do khác tại sao rename() có thể không thành công. Ví dụ: tại số ít nhất một hệ thống tệp rename() không thành công nếu newName trỏ đến tệp đang mở.

0

QUrlOperator::copy() là một giải pháp thay thế cho QDir :: rename() cũng có thể phù hợp với bạn.

+1

Có vẻ tốt, nhưng dường như bị loại khỏi qt4: Lớp QUrlOperator không còn là một phần của API Qt công cộng nữa. Nó đã được đổi tên thành Q3UrlOperator và chuyển sang Qt3Support. Trong các ứng dụng Qt 4, bạn có thể sử dụng các lớp như QFtp và QHttp trực tiếp để thực hiện các tác vụ liên quan đến tệp trên máy chủ từ xa. Tôi không chắc mình có nên sử dụng nó hay không. – sashoalm

Các vấn đề liên quan