在c#脚本中获取和使用当前目录

时间:2012-05-21 23:17:27

标签: c#

这只是一个示例,但它将有助于说明我正在尝试做什么。

我知道如何获取当前目录,如下面的脚本所示,我可以设置文件variable

我遇到的问题是我无法弄清楚如何创建文件夹并将文件放在文件夹中

例如(使用下面的变量)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var cd = Directory.GetCurrentDirectory();
            Directory.CreateDirectory(cd: \5app\);
            File.Copy(c:\xyz.txt, cd: \5app\xyz.txt

        }
    }
}

我知道上面写的是不正确的,因为vs10告诉了我,但并没有给我很多帮助。

3 个答案:

答案 0 :(得分:4)

你缺少一个括号和一个分号,特别是方法Directory.CreateDirectory()File.Copy()的参数是字符串,把它们放在引号内:

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var cd = Directory.GetCurrentDirectory();
            Directory.CreateDirectory(cd + @"\5app\");
            File.Copy(@"c:\xyz.txt", cd + @"\5app\xyz.txt");
        }
    }
}

MSDN参考:Directory.CreateDirectoryFile.Copy

感谢 Cole Johnson 指出它不应该是@"cd: \5app\"

答案 1 :(得分:3)

您不使用引号。

另外,我建议不要使用显式参数命名。如果查看使用显式参数时生成的CIL,则会在性能降级时将参数变量保存到局部变量,然后传递。这导致不需要的strfld命令。

答案 2 :(得分:2)

您的代码存在一些问题,编译器错误可能会帮助您解开:

方法Directory.CreateDirectory(string path)需要一个字符串,该字符串包含在“”中。 以下是有关如何使用Directory.CreateDirectory

的MSDN文章

与方法File.Copy(string source, string destination)相同 以下是有关如何使用File.Copy

的MSDN文章

由于Directory.GetDirectory()返回一个字符串,您只需将特定目录连接到结果即可。但请记住在字符串中使用正确的Escape Sequences来处理反斜杠等内容。

namespace ConsoleApplication1 
{ 
    class Program 
    { 
        static void Main(string[] args) 
        { 
            string cd = Directory.GetCurrentDirectory(); 
            Directory.CreateDirectory(cd + "\\5app\\"); 
            File.Copy("c:\\xyz.txt", cd + "\\5app\\xyz.txt");
        } 
    } 
}