특정 파일을 삭제하는 코드 줄을 쓰려고하는데 DeleteFile 함수를 시도했지만 "식별자를 찾을 수 없습니다."(Visual Studio 오류 코드 C3861) 메시지.Visual C++에서 파일을 제거하는 방법
버튼 클릭 이벤트의 내부 코드는 다음과 같습니다
DeleteFile(path+"filemaker\\start.ini");
나는이 일을 내 form1.h에 무엇이 필요합니까?
특정 파일을 삭제하는 코드 줄을 쓰려고하는데 DeleteFile 함수를 시도했지만 "식별자를 찾을 수 없습니다."(Visual Studio 오류 코드 C3861) 메시지.Visual C++에서 파일을 제거하는 방법
버튼 클릭 이벤트의 내부 코드는 다음과 같습니다
DeleteFile(path+"filemaker\\start.ini");
나는이 일을 내 form1.h에 무엇이 필요합니까?
DeleteFile
사용 방법은 Win API 기능이므로 #include <Windows.h>
해야합니다.
인수는 char*
포인터 여야하며 std::string
은 인수로 사용할 수 없습니다.
std::string path = "\\path\\to\\dir\\";
std::string filename = path + "filemaker\\start.ini"; (when path does end with "\\")
DWORD res = DeleteFile(filename.c_str());
당신은뿐만 아니라 #include <stdio.h>
(또는 <cstdio>
) 및
int remove(const char* filename)
,
는 크로스 플랫폼이기 때문에 더 나은입니다 (ANSI C 사용할 수 있습니다 다음과 같이
은 그래서 당신은 할 수있다). 당신은 다음과 같이 마샬링을 추가하는 것이 필요
std::string path = "\\path\\to\\dir\\";
std::string filename = path + "filemaker\\start.ini"; (when path does end with "\\")
int res = remove(filename.c_str());
편집 :이 같은
지금//includes
#include <msclr\marshal.h>
#include <msclr\marshal_cppstd.h>
코드 :
String^ filepath=path+"filemaker\\start.ini";
const char* tmpptr= msclr::interop::marshal_as<const char*>(filepath);
DeleteFile(tmpptr);
별도 : Windows에서 경로에 백 슬래시를 사용할 이유가 없습니다. 명령 프로세서에서만 필요합니다. 그렇다면 추악한 배증은 없습니다. –
Windows에서 "\\"또는 "/"를 경로 구분 기호로 사용하지 않는 언어 (한국어 및 일본어와 같은)가 있기 때문에 올바른 방법은 OS에서 경로 구분 기호를 얻는 것입니다. – SHR
글쎄, DeleteFile 옵션을 수행하려고하는데 C2228 오류가 발생합니다 ('.c_str'의 왼쪽에 class/structure/union이 있어야 함). 코드는 다음과 같습니다. String^filepath = path + "filemaker \\ start.ini"; const char filechar = filepath.c_str(); DeleteFile (filechar); '#pragma once'바로 아래에 #include 줄을 넣었습니다. – TheMohawkNinja
글쎄, 당신을했다 '경로'선언 ...? –
경로는 단추 클릭 이벤트 내에서 DeleteFile 함수 앞에 다음과 같이 선언되었습니다. path = this-> FilePathBox-> Text; – TheMohawkNinja
사실'DeleteFile()'을 염두에두고있었습니다. 그것이 선언 되었습니까? – sashoalm