iFileoperation 써보신분 계신가요?

ljs0652의 이미지

iFileoperation을 이용해서 파일 추가 삭제 복붙을 하고 있습니다.

문제가 생기는건 삭제를 할 때인데요, 복수개의 데이터를 삭제할 때 프로그래스 창이 생성이 되면서

삭제가 진행되다가 프로그래스 창으로 종료 버튼을 누르거나, 취소 버튼을 누르면 너무 오래 응답이 없습니다.

디버그 모드로 확인을 해봤는데 PerformOperations 이부분에서 멈춰 있더라구요.

그리고 os는 win 7에서는 문제없이 작동하지만 win10에서만 이러한 문제가 발생하는데 답이 안보여서 너무 답답하네요

혹시 아시는분은 알려주시면 감사하겠습니다.

ps. 제 개인적인 생각으로는 win10 탐색기가 문제가 좀 있어서 발생하는 현상이라고 생각은 드는데
프로그래스 창 취소는 붙여넣기, 이동은 이상없이 진행되지만 삭제에서만 문제가 발생되고 있습니다.

shint의 이미지

- 찾아보니. MSDN과 몇몇 블로그에 관련된 내용이 보입니다. ㅇ_ㅇ;;

원인은 몇가지 보입니다.
- MTD STD
- 재귀호출
- IFileOperation::PerformOperations method 의 리턴값은.
IFileOperation::GetAnyOperationsAborted method 함수로 처리해줍니다.

기타
- 메모리 부족
- 디스크 공간 정리 필요
- 프로세스 점유율 증가
- 프로세스가 파일을 사용중 인경우.

대안
- UI Thread 구현 ??
일단. UI 는 분리가 되지만. 삭제 처리는 explorer.exe 라서. 관련 없을 수 있습니다.
D:\share\기능과 원리로 배우는 프로그램\화면\test 스레드와 UI 데이터 처리
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=278&MAEULNO=20&no=32213&page=4

- 휴지통으로 보내기 사용
일단. 휴지통으로 보내고. 삭제는 윈도우에서 비워주기로 하셔도 됩니다. ㅇ_ㅇ;;

- 재귀호출을 사용하지 않는 리스트 방식으로 삭제 처리를 구현
D:\share\기능과 원리로 배우는 프로그램\데이터\test 재귀호출을 사용하지 않고. 모든 파일 폴더 경로 리스트박스에 보여주기

성능향상
- CMOS BIOS 에서 CPU 320 MHz 로 오버클럭 성능 향상
- 윈도우 : 전원설정 : 고성능
- 그래픽 카드 및 장치 드라이버 사용
- SSD 사용

//
http://2ry53.tistory.com/entry/파일폴더-삭제-SHFileOperation와-IFileOperation

//
탐색기에서 폴더 생성/삭제 시 몇 초 동안 멈추는 현상 개발자
http://sysnet.pe.kr/220629247029

[MFC] 디렉토리 덮어쓰기 MFC / 프로그래밍
https://blog.naver.com/just720/40159665014

Writing Scalable Applications with PHP
https://www.linuxjournal.com/article/7593

IFileOperation::PerformOperations method
https://docs.microsoft.com/en-us/windows/desktop/api/shobjidl_core/nf-shobjidl_core-ifileoperation-performoperations

IFileOperation::GetAnyOperationsAborted method
https://docs.microsoft.com/ko-kr/windows/desktop/api/shobjidl_core/nf-shobjidl_core-ifileoperation-getanyoperationsaborted

ServicingStepDriver.PerformOperations 메서드
https://msdn.microsoft.com/ko-kr/library/microsoft.teamfoundation.framework.server.servicingstepdriver.performoperations.aspx

[MFC] 디렉토리 덮어쓰기
https://m.blog.naver.com/PostView.nhn?blogId=just720&logNo=40159665014&proxyReferer=https%3A%2F%2Fwww.google.com%2F

Beginning C# 6 Programming with Visual Studio 2015
https://books.google.co.kr/books?id=fokgCwAAQBAJ&pg=PA395&lpg=PA395&dq=PerformOperations&source=bl&ots=61Q_xf1VGv&sig=wym_fq9aReQLILj3E8S9OdgUHAo&hl=ko&sa=X&ved=2ahUKEwja6qrPhe_dAhVh44MKHXifC6EQ6AEwBHoECA8QAQ#v=onepage&q=PerformOperations&f=false

PerformOperations

SHFileOperation(), IFileOperation관련해서 질문드립니다. | VC++ 일반
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNo=20&no=910563&ref=910560

http://search.devpia.com/MAEULResult.aspx?KeyW=iFileoperation%20&keyr=title&boardID=50&MAEULNo=20

Microsoft/Windows-classic-samples
https://github.com/Microsoft/Windows-classic-
samples/blob/master/Samples/Win7Samples/winui/shell/appplatform/fileoperations/FileOperationSample.cpp

[VB6] Use IFileOperation to replace SHFileOperation for modern Copy/Move box/prompts
http://www.vbforums.com/showthread.php?779005-VB6-Use-IFileOperation-to-replace-SHFileOperation-for-modern-

Copy-Move-box-prompts

IFileOperationで進行ダイアログ付きでディレクトリ操作を行うAdd Star
http://d.hatena.ne.jp/Tan90909090/20160111/1452441478

My IFileOperation Snnipet crashes the target
http://www.rohitab.com/discuss/topic/42400-my-ifileoperation-snnipet-crashes-the-target/

IFileOperation interface
https://docs.microsoft.com/ko-kr/windows/desktop/api/shobjidl_core/nn-shobjidl_core-ifileoperation

http://2ry53.tistory.com/57

http://notgivuphil.tistory.com/65

Windows UAC Bypass 원리
http://ragonfly.tistory.com/204

How to use IFileOperation CopyItems for a destination ZIP file
https://stackoverflow.com/questions/29881388/how-to-use-ifileoperation-copyitems-for-a-destination-zip-file

파일/폴더 삭제 SHFileOperation와 IFileOperation API / Programming
https://blog.naver.com/komtech/220289699249

파일을 휴지통 (RecycleBin) 으로 삭제하기
https://cafe.naver.com/gogoomas/308727

iFileoperation
https://search.naver.com/search.naver?ie=UTF-8&sm=whl_hty&query=iFileoperation

ifileoperation, help please
https://www.codeproject.com/Questions/304413/ifileoperation-help-please

IFileOperation을 사용하여 복사본을 만드는 동안 디렉터리 만들기
https://stackoverrun.com/ko/q/3182594

Author Topic: IFileOperation and moving file to trash (Read 1397 times)
https://forum.lazarus.freepascal.org/index.php?topic=41009.0

iFileoperation
https://www.google.com/search?num=20&source=hp&ei=TTW3W7euFYS78QXNxLpA&q=iFileoperation+&oq=iFileoperation+&gs_l=psy-ab.12..0l4j0i30k1l6.1716.1716.0.3051.3.2.0.0.0.0.141.141.0j1.2.0....0...1c.2.64.psy-ab..1.1.141.0...97.Cj0MJmdvc08

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

ljs0652의 이미지

와... 정말 감사합니다 ㅠㅠ 일이 바빠 좀 늦게보게됐어요 정말 감사합니다

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.