|
DeleteFile(ListBox1->Items->Strings[i]);
로 파일 삭제하는데 있어
ListBox1->Items->Strings[i]에 원하는 파일의 full path 가 저장되어 있으면
당연히 잘지워집니다.
물론 \n 같은 문자가 끼어 있으면 지워지지 않으나,
FindFirstFile 로 찾아낸
파일명에 \n 이 끼어 있을리가 없을텐데...
잘 지워지지 않으면
해당하는 줄에 브레이크 포인트를 걸고
변수의 내용을 직접 검사해 보세요.
String 중에 \n 문자를 없애려면
String abc = "abcd\n";
abc = StringReplace(abc, "\n", "", TReplaceFlags() << rfReplaceAll);
식으로 하면 됩니다.
그럼..
Destinyz 님이 쓰신 글 :
: 제가 원하던 답이 아닌 것 같습니다^^;;
:
: 제가 질문을 잘못드렸나 하는 생각도 드는... ㅇㅂ ㅇ;;
:
: 전 원래
:
: DeleteFile(ListBox1->Items->Strings[i]);
:
: 이렇게 바로 쓰려고 했는데요, 그게 안되더라구요^^;;
:
: 그러니까 '삭제'가 안된다는 거죠.
:
: 그래서 온갖 방법을 생각해서 AnsiString buff; 를 쓰게 되었고요.
:
: 거기서 sprintf까지 쓰게 되어버렸습니다.
:
: 전 아직도 \n을 의심하고 있습니다. 그래서 제가 한동안 열심히 substring으로 "\n"을 찾아서 그 앞에다가 "\0"을
:
: 넣으려고 했습니다.
:
: 일단 확실히 말씀드리자면,
:
: 검색 결과로 인해서 제 C드라이브에 있는 aaa.txt 파일을 두개 찾았습니다.
:
: 그래서 ListBox1->Items->Strings[0]과 [1]에 각각
:
: "C:\\Documents and Settings\\Destinyz\\바탕 화면\\aaa.txt" 와 "C:\\aaa.txt"가
:
: 들어있죠. 그런데 이 것들을 꺼내서 DeleteFile안에다가 넣으려니 안되고, 따로 변수 만들어서 해도 안되고..
:
: 다시 참신한 답변 기다리고 있겠습니다^^
:
:
:
: 김태선 님이 쓰신 글 :
: : 질문하시는 분 정성이 대단하군요.
: : 대부분 사람들이 무성의한 질문으로 대답을 기대하는 경향이 있는데....
: :
: : ListBox1->Items->Strings[i];
: : 이 넘은 AnsiString 으로 전혀 문제 없습니다.
: : AnsiString은 님이 하신 방법대로 값을 할당 하시면 절대 안됩니다.
: : ListBox1->Items->Strings[i] = "문자열...."; 식으로 할당해야 합니다.
: :
: : String filename = "C:\Destinyz\aaa.txt";
: : ListBox1->Items->Strings[i] = filename;
: :
: : 또는
: :
: : char filename[MAX_PATH];
: : sprintf(filename, "%send", "C:\Destinyz\aaa.txt");
: : ListBox1->Items->Strings[i] = filename;
: :
: : 이런 식으로 해야 합니다.
: :
: :
: : 그럼..
: :
: :
: : Destinyz 님이 쓰신 글 :
: : : 저번에 저의 질문에 소중한 답변 주신 분 정말 감사합니다^^ 덕분에 일이 잘 풀러가고 있던 찰나였는데...
: : :
: : : 제가 어제 말한 그 검색 프로그램에서 좀더 도약하여서 검색하고자 하는 파일의 경로명과 파일명을 합한
: : :
: : : (예를 들어 "C:\Destinyz\aaa.txt") 것을 ListBox1->Items->Add(경로명파일명) 하였습니다.
: : :
: : : 그다음에 나중에 ListBox의 아이템들의 목록에 있는 실제 파일들을 지우려고 했습니다.
: : :
: : : 지우는 함수가 DeleteFile이라는 함수더군요. 사용법도 쉬워서 저도 쉽게 될 줄 알았는데;
: : :
: : : 분명히 경로명과 다 맞는데 지워지질 않는 것입니다.
: : :
: : : 그래서 온갖 추측을 했죠("\\"를 검색해서 "\\"를 하나 더 붙이는 둥...)
: : :
: : : 하지만 나중에 보니까 ListBox1->Items->Strings[i]; 이넘이 좀 문제가 있는 것 같았습니다.
: : :
: : : ShowMessage로 보니까 한칸이 개행이 되더군요 ㄱ-
: : :
: : : 개행문자가 \n 인거 다들 아시죠? 그런데 이러한 것들, 어떻게 지우는지 모르겠습니다.
: : :
: : : 제가 제시한 방법이 틀리다면 (개행문자 지우는 일) 다른 방법 올려주셔도 ㄳ 하겠습니다^^
|