2010-08-23 45 views
6

Khi tôi biên dịch và chạy chương trình của tôi C++ mà xóa một tập tin gọi là example.txt (dưới đây)"Lỗi xóa file: Permission denied" Với loại bỏ trong C++

#include <stdio.h> 

int main() 
{ 
    if(remove("example.txt") != 0) 
    perror("Error deleting file"); 
    else 
    puts("File successfully deleted"); 
    return 0; 
} 

Nó đi ra như thế này ...

cd c:\Users\Mark\Desktop 
C:\Users\Mark\Desktop>app.exe 
Error deleting file: Permission denied 

Tôi dỡ bỏ tất cả các hạn chế đối với tệp và có quyền truy cập đầy đủ vào bất kỳ ai (cần bao gồm chương trình của tôi).

Bất kỳ giải pháp nào?

EDIT

Khi tôi gõ vào del example.txt trên lệnh nhắc nó hoạt động.

Weird ...

+0

Vâng, tôi có lối tắt mở tệp lô chạy chương trình Vì vậy, có ... –

+1

Thông báo lỗi là gì? perror sẽ cho bạn một chuỗi lỗi. Không có gì ngay sau khi "nó đi ra như thế này" dòng. Bạn có thể xóa tệp đó trong dòng lệnh không? – EboMike

+0

Điều gì sẽ xảy ra khi thay vì 'app.exe' bạn gõ' del example.txt' trong dấu nhắc lệnh? –

Trả lời

0

Tôi đoán std::remove() lấy đường dẫn làm tham số. Vì vậy, chúng ta cần xác định toàn bộ đường dẫn làm tham số cho hàm remove.

ví dụ: remove("home/xxx/example.txt");

+1

Tôi đã thử nó và nó đã không giúp tôi. – STF

3

Bạn đang đưa ra cùng một ví dụ chính xác được liệt kê trong Cplusplus như vậy, nếu chương trình không hoạt động, tôi nghĩ rằng đó là một vấn đề liên quan O.S.

Nếu bạn đang sử dụng các cửa sổ từ 2k trở lên, hãy thử the DeleteFile api và xem có lỗi tương tự xảy ra hay không.

Tôi không thể thêm nhận xét vào câu hỏi, vì vậy, xin lỗi nếu đây không phải là câu trả lời đúng.

Đảm bảo bạn không mở tệp. Hãy thử tạo một tệp mới từ chương trình của bạn và xóa nó.

0

Có thể bạn không có quyền thay đổi tệp tại địa điểm này từ mã studio trực quan của mình.

Tôi gặp sự cố này và tôi đã thay đổi vị trí tệp và tôi không gặp phải vấn đề gì khác.

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