2009-05-27 140 views
0

我想通过拖动多个文件到.exe,然后让exe文件发送文件到基于规则和逻辑的程序本身的不同文件夹。什么是最好的方式来处理多个文件

我遇到的问题是,我通过控制台应用程序执行此操作时,有多少信息可以一次发送到exe的限制。

在运行Microsoft Windows XP 或更高版本中, 字符串,你可以在命令提示符 使用的最大长度为电脑8191个字符。在 运行Microsoft Windows 2000或Windows NT 4.0的计算机上,可以在命令提示符处使用 字符串的最大长度为 字符为2047 个字符。

这个问题最简单的方法是什么?如果可能的话,我希望避免让程序随时在后台运行。

+0

所有这些多个文件在同一个文件夹中? 这些文件总是相同的(相同的名称,相同的位置等)? – 2009-05-27 17:30:23

+0

不是真的。主要想法是,如果我在桌面上有一堆文件(pdfs.jpgs .mp3s .exe的)在一周的过程中累积,我可以将它们全部抓住并将它们放在这个exe文件中,然后将它们放在那里到mydocumetns/mypicutres mydocuments/pdfs mydocments/mymusic等 – Crash893 2009-05-27 17:52:52

+1

如果你想要时尚,只使用黑色电脑。也许也有地面效应。 – Kieveli 2009-06-15 00:32:49

回答

0

您可以将“数据”写入文件并将文件作为参数?

+0

我不认为启动程序1来读取数据会使得启动程序2的文件成为一种更简单的方式来执行任务。此外,我只会遇到与program1无法读取所有文件相同的限制。 – Crash893 2009-05-27 17:00:17

3

而不是将文件拖到“.exe”,也许你可以创建一个“热文件夹”来放入文件。您需要编写应用程序来监视此文件夹(使用类似FileSystemWatcher的东西)并处理传入的文件。

+0

“我想避免一个程序在后台运行,如果可能的话” - 这是我的备份想法,我已经在作品中有一个原型,但它看起来像浪费资源让它运行时,它可能会得到用于每月30秒 – Crash893 2009-05-27 16:59:00

1

它不是C#,但是当右键单击文件或选择一组文件时(任何地方,不仅限于),您可以编写一个资源管理器Shell扩展以将“路由文件”添加到默认的上下文菜单在上下文中你可以看到你的可执行文件),因为这个API 可能不会限制你的命令行参数的长度限制。

那里。圆滑,没有后台进程。唯一的缺点是你必须把它写成一个COM组件。

2

有一种方法可以编写一个使用FileSystemWatchter类监视特定文件夹的.net程序。我写了一个叫example of some code to do this的电话,称我们公司的产品,但你可以使用骨架来做你想要的。

这个想法是你指向一个文件夹并订阅该文件夹上的某些事件(文件被重命名,添加,删除等),以便当这些事件发生时,您的代码被触发。在之间,你的程序只是等待。

然后,您可以将该文件夹设置为桌面上的文件夹,并在放入东西时发生“奇迹般”的事情。

A Visual Studio 2005 solution也是在网站上。

希望这会有所帮助。

相关问题