1
이 간단한 방법으로 파일 목록을 삭제할 수 있습니다. 그러나 몇 분 동안 파일을 삭제하지 않으면 몇 분 동안 파일을 삭제하지 못합니다. 특히 Interop를 사용하여 Word 문서를 병합 한 다음 병합을 실행 한 직후에 일부 파일에 대해 파일을 삭제하려고 시도 할 때 표시됩니다 (Word가 백그라운드에있는 것으로 추측 됨).C에서 파일을 삭제하는 방법 #
이 방법에 대한 접근 방법은 무엇입니까? 이 비동기하고는 잠시 후 파일을 삭제하기 시작 것 스레드 산란하게 (좀 가비지 컬렉터처럼?)를
public static void deleteDocuments(List<string> arrayList) {
foreach (var item in arrayList) {
try {
File.Delete(item);
} catch (Exception e) {
MessageBox.Show("Błąd kasowania: " + e.ToString(), "Błąd Kasowania", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
이렇게하면 파일이 삭제 될 때까지 스레드가 차단됩니다. 파일이 항상 잠겨 있으면 어떻게됩니까? 나는 카운터를 추가하여 파일을 삭제할 최대 시도를 제안합니다. –
당신 말이 맞습니다. 나는 그것을 빨리 썼으며 그 모든 것을 생각하지 않았습니다. 내 자신의 코드에서 나는 이런 일을 한 번씩해야만한다. 재시도 횟수에 제한을 둔다. 나는 코드를 편집 할 것이다. – pstrjds
여전히 파일 목록이 길고 파일을 삭제하기 위해 대기하는 방해물이 하나있는 경우 GUI가 응답하지 않게됩니다. – MadBoy