2009-05-27 4 views
0

.exe로 여러 파일을 끌어서 프로그램을 시작한 다음 프로그램 자체의 규칙과 논리에 따라 다른 폴더로 파일을 보냅니다.여러 파일을 처리하는 가장 완고한 방법은 무엇입니까

문제는 내가 콘솔 응용 프로그램을 통해 이렇게 많은 정보가 한 번에 exe로 보낼 수있는 방법에 대한 제한이 있습니다. 나중에 마이크로 소프트 윈도우 XP 또는 명령 프롬프트에서 사용할 수있는 문자열의 최대 길이를 실행하는 컴퓨터

는 8191 자입니다. Microsoft Windows 2000 또는 Windows NT 4.0을 실행하는 컴퓨터의 경우 사용할 수있는 문자열의 길이는 최대 문자입니다.

이 문제를 해결하는 가장 간단한 방법은 무엇입니까? 가능하다면 항상 백그라운드에서 프로그램을 실행하는 것을 피하고 싶습니다.

+0

이러한 여러 파일이 모두 같은 폴더에 있습니까? 논문 파일은 항상 같은 이름 (같은 이름, 동일한 위치 등)입니까? –

+0

아닙니다. 주요 아이디어는 내가 내 데스크톱 (pdfs .jpgs .mp3s .exe)에 여러 파일을 가지고있는 경우 일주일에 걸쳐 그 파일들이 모여서이 EXE에 놓을 수 있다는 것입니다. mydocumetns/mypicutres mydocuments/pdfs mydocments/mymusic etc – Crash893

+1

매끄러운 모습을 원하면 검은 색 컴퓨터 만 사용하십시오. 어쩌면지면 효과가있는 사람도있을 수 있습니다. – Kieveli

답변

0

"데이터"를 파일에 쓰고 파일을 인수로 사용할 수 있습니까?

+0

필자는 프로그램 1을 시작하면 프로그램 2를 시작할 파일을 만드는 데이터를 읽는 것이 더 쉬운 방법 일 것이라고 생각하지 않습니다. 또한 나는 단지 program1 모든 파일을 읽을 수없는 동일한 제한으로 실행됩니다. – Crash893

3

파일을 ".exe"로 드래그하는 대신 파일을 드롭하는 "핫 폴더"를 만들 수 있습니다. 응용 프로그램을 작성하여이 폴더를 모니터하고 (FileSystemWatcher과 같은 것을 사용) 수신 파일을 처리해야합니다.

+0

"가능한 한 백그라운드에서 실행되는 프로그램을 피하고 싶습니다."- 이것은 내 백업으로, 이미 작품에서 프로토 타입을 가지고 있지만 아이디어가 생길 때 리소스가 낭비되는 것처럼 보입니다. 한 달에 30 초 정도 사용됨 – Crash893

+0

폴더를 모니터링 할 때 항상 응용 프로그램을 실행하지 않아도됩니다. '모니터링 폴더'에 파일을 드롭 할 준비가되면 FileSystemWatcher 알리미가 폴더에 새 파일이 발견되면 이벤트를 발생시킵니다. – Mez

1

C#이 아니지만 파일을 마우스 오른쪽 단추로 클릭하거나 파일 그룹을 선택할 때 "루트 파일 (들)"을 추가 할 수있는 탐색기 셸 확장을 작성할 수 있습니다 이 API는 일 가능성이 높으므로은 명령 줄 인수의 길이 제한을 제한하지 않으므로 실행 파일을 볼 수있는 컨텍스트로 이동하십시오.

있습니다. 매끄러운, 그리고 백그라운드 프로세스가 없습니다. 유일한 단점은 COM 구성 요소로 작성해야한다는 것입니다.

+0

좋은 생각, 예제가 있습니까? – Crash893

+0

아니, 나는 전염병처럼 COM을 피하는 경향이 있습니다. 다음은 문제 키워드에 대한 인터넷 검색입니다. http://www.codeproject.com/KB/shell/shellextguide1.aspx – TheMissingLINQ

+0

COM을 사용할 필요가 없습니다. 아래 내 대답을 참조하십시오. – lavinio

2

FileSystemWatchter 클래스를 사용하여 특정 폴더를 감시하는 .net 프로그램을 작성하는 방법이 있습니다. 나는 example of some code to do this라고 쓰고 우리 회사의 제품을 썼다. 그러나 당신이 원하는 것을하기 위해 골격을 사용할 수 있었다.

아이디어는 폴더를 가리키고 해당 이벤트가 발생하면 코드가 트리거되도록 해당 폴더의 특정 이벤트 (이름을 바꾸거나 추가, 삭제 한 파일 등)를 구독하는 것입니다. 그 사이에 프로그램이 대기합니다.

그런 다음 그 폴더를 바탕 화면의 폴더로 만들 수 있습니다. 그리고 그 폴더에 물건을 떨어 뜨리면 "마법 같은"일이 발생합니다.

Visual Studio 2005 solution도 사이트에 있습니다.

희망이 도움이됩니다.

+0

나는 도움을 바란다. 그러나 내가 원했던 것이 아니다. (내가 FSW에 나갔다는 것을 지적해야한다.)하지만 내가 원하는 방식대로 할 수 없다는 사실에 의해 대답되는 질문을 본다. 감사 – Crash893

관련 문제