2009-05-27 13 views
0

複数のファイルを.exeにドラッグしてプログラムを起動しようとしていて、プログラム自体のルールとロジックに基づいて異なるフォルダにファイルを送信させます。複数のファイルを処理する最も熟練した方法

私が実行している問題は、コンソールアプリケーションを介してこれを行うということです。一度にどれだけ多くの情報をexeに送ることができるかには限界があります。 Microsoft Windowsの XPを実行しているコンピュータでは

以降、あなたはコマンドで プロンプトを使用することができます 文字列の最大長は8191文字です。 Microsoft Windows 2000またはWindows NT 4.0を実行しているコンピュータでは、コマンドプロンプトで を使用できる文字列の最大長は で、2047 文字です。

この問題を回避する最も簡単な方法は何ですか?可能であれば、常にバックグラウンドでプログラムを実行することを避けたいと思います。

+0

これらの複数のファイルはすべて同じフォルダにありますか? これらのファイルは常に同じですか(同じ名前、同じ場所など)ですか? –

+0

本当にありません。主なアイデアは、私が自分のデスクトップ(pdfs .jpgs .mp3s .exe)のファイルを一週間に渡って蓄積していると、それらをすべて掴んで、このexeにドロップしてmydocumetns/mypicutres mydocuments/pdfs mydocments/mymusic etc – Crash893

+1

スマートにしたい場合は、黒いコンピュータだけを使用してください。たぶん地面効果のあるものかもしれない。 – Kieveli

答えて

0

"データ"をファイルに書き込んで、そのファイルを引数として使用できますか?

+0

プログラム2を起動するファイルを作成するデータを読み込むためにプログラム1を起動すると、より簡単な方法で動作すると考えられます。また、私はprogram1ですべてのファイルを読み取ることができないという同じ制限に遭遇します。 – Crash893

3

ファイルを ".exe"にドラッグする代わりに、ファイルをドロップするための "ホットフォルダ"を作成することができます。このフォルダを監視するアプリケーションを作成し(FileSystemWatcherのようなものを使用して)、着信ファイルを処理する必要があります。

+0

"可能であれば、バックグラウンドでプログラムを実行しないようにしたいと思っています" - これは私のバックアップのアイデアです。私はすでに作品のプロトタイプを持っていますが、月に30秒ほど使用する – Crash893

+0

フォルダを監視している間は、アプリケーションを常時実行しておく必要はありません。 'monitoring-folder'にファイルをドロップする準備ができたら、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

関連する問題