Solved

long filename argument in dotNet application

Posted on 2009-05-19
6
388 Views
Last Modified: 2013-11-25
I am writing a dotNet application.  This application accepts argument in the Main function.  I want to be able to drag and drop a file onto this application.  When the file has a normal filename (ie without space), everything works fine.  When the file has a long filename with space, then I want the filename to be considered as one argument surrounded with double quotes (ie not 2 arguments when there is a space in the filename).

This dotNet application may have switches.

One example is when I create a *.bat file.  When I drag and drop another file onto this *.bat file, the %1 argument contains a filename surrounded by double quotes.

How can I achieve this in dotNet?
0
Comment
Question by:Guy2
  • 3
  • 2
6 Comments
 
LVL 5

Expert Comment

by:karstieman
ID: 24426751
I'm not quite sure why there has to be a problem with long filenames, but you can declare a string and put the filename into. That way you can have as mush spaces as you'd like.
0
 

Author Comment

by:Guy2
ID: 24426767
As the application allow switches, some spaces are normal whereas some are within the long filename.  I want to distinguish between the two.  Moreover, in a drag and drop scenario, I do not know in advance the filename that will be used.
0
 
LVL 85

Expert Comment

by:Mike Tomlinson
ID: 24427321
What version VB.net?...and is there a STRONG reason for starting with Sub Main()?
0
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 

Author Comment

by:Guy2
ID: 24429343
VB.Net 2.0.

I understand that Sub Main is the only way we can get command line arguments.  Is there any other way?
0
 
LVL 85

Accepted Solution

by:
Mike Tomlinson earned 500 total points
ID: 24432470
There are several other ways...

(1) Event based approach:
Read the overview: http://msdn.microsoft.com/en-us/library/w3xx6ewx(VS.80).aspx
Startup() Event: http://msdn.microsoft.com/en-us/library/t4zch4d2(VS.80).aspx
StartupNextInstance() Event: http://msdn.microsoft.com/en-us/library/b9z4eyh8(VS.80).aspx
To use this approach the "Enable Application Framework" box must be CHECKED.  On that same tab, click on the "View Application Events" button in the bottom right to get the editor window.  Then change the two dropdowns across the top to get these events.  You can use "e.CommandLine" in either event to get the parameters.

(2) Accessing the parameters when YOU want them:
(a) My.Application.CommandLineArgs(): http://msdn.microsoft.com/en-us/library/z2d603cy(VS.80).aspx
(b) Environment.GetCommandLineArgs: http://msdn.microsoft.com/en-us/library/system.environment.getcommandlineargs(VS.80).aspx
(c)  Environment.CommandLine: http://msdn.microsoft.com/en-us/library/system.environment.commandline(VS.80).aspx
0
 

Author Closing Comment

by:Guy2
ID: 31583239
Good!
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

For a while now I'v been searching for a circular progress control, much like the one you get when first starting your Silverlight application. I found a couple that were written in WPF and there were a few written in Silverlight, but all appeared o…
The ECB site provides FX rates for major currencies since its inception in 1999 in the form of an XML feed. The files have the following format (reducted for brevity) (CODE) There are three files available HERE (http://www.ecb.europa.eu/stats/exch…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …

808 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question