如何在同一个文件夹中运行程序?

时间:2015-04-01 06:15:01

标签: c#

所以我正在学习如何开发软件,而且我遇到了问题。当我在Visual Studio中创建一个表单并让它打开一个文档或打开其他东西时,当我点击一个按钮时,我指向它:

C:\User\MyName\Documents\TestApp\test.txt

我想知道的是如何将程序看到TestApp文件夹而不是C:Drive?假设运行程序所需的所有文件都位于TestApp文件夹中。

4 个答案:

答案 0 :(得分:2)

如果你知道你的应用程序每次都会从同一个地方运行(比如文件夹),你可以调用GetCurrentDirectory()方法。这将返回运行您的应用程序的当前目录的字符串。

String pwd = GetCurrentDirectory(); //Contains something like C:\Users\Daedric\TestApp\
String finalString = Path.Combine(pwd, "test.txt"); //As per Corak

答案 1 :(得分:1)

您需要从应用文件夹中启动文件吗?

Application.StartupPath

用于启动文件

Process.Start(Application.StartupPath + @"\test.txt");

答案 2 :(得分:0)

除上述答案外,以下示例可帮助您了解Path的工作原理:

class Program
    {
        static void Main()
        {
        string[] pages = new string[]
        {
            "cat.aspx",
            "really-long-page.aspx",
            "test.aspx",
            "invalid-page",
            "something-else.aspx",
            "Content/Rat.aspx",
            "http://dotnetperls.com/Cat/Mouse.aspx",
            "C:\\Windows\\File.txt",
            "C:\\Word-2007.docx"
        };
        foreach (string page in pages)
        {
            string name = Path.GetFileName(page);
            string nameKey = Path.GetFileNameWithoutExtension(page);
            string directory = Path.GetDirectoryName(page);
            //
            // Display the Path strings we extracted.
            //
            Console.WriteLine("{0}, {1}, {2}, {3}",
            page, name, nameKey, directory);
        }
        }
    }

示例输出如下:

输入 C:\ Windows \ File.txt GetFileName :File.txt GetDirectoryName :C:\ Windows

答案 3 :(得分:0)

GetCurrentDirectory不是正确的方法,因为在应用程序运行时返回值可能会发生变化。您只需在控制台应用程序中运行以下内容即可看到此信息:

Console.WriteLine(Directory.GetCurrentDirectory());
Directory.SetCurrentDirectory(@"c:\temp\");
Console.WriteLine(Directory.GetCurrentDirectory());

您可以使用以下内容为您提供装配位置:

Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)