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

本文关键字:当前目录 获取 脚本 | 更新日期: 2023-09-27 18:35:05

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

我知道如何获取当前目录,如下面的脚本所示,我可以设置一个文件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 告诉我,但没有给我太多帮助。

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

您缺少括号和分号,尤其是方法的参数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.CreateDirectory, File.Copy

感谢科尔约翰逊指出它不应该@"cd: '5app'" .

不使用引号。

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

您的代码存在几个问题,编译器错误可能会帮助您解决这些问题:

方法 Directory.CreateDirectory(string path) 需要一个字符串,该字符串括在 " 中。这是一篇关于如何使用 Directory.CreateDirectory 的 MSDN 文章

与方法相同File.Copy(string source, string destination)这是一篇关于如何使用 File.Copy 的 MSDN 文章

由于 Directory.GetDirectory() 返回一个字符串,因此您可以将特定目录连接到结果。但请记住在字符串中使用适当的转义序列,例如反斜杠

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");
        } 
    } 
}