C#-在控制台应用程序上读取同一行上由空格分隔的两个字符串
我正在做一个简单的文件管理器,它必须在控制台上创建、修改、删除和重命名文件。这样做的目的是让用户输入“createfile.txt”这样的内容,然后创建文件。到目前为止,我只知道在键入命令后它会在哪里请求文件名,但我不希望这样。有什么想法吗C#-在控制台应用程序上读取同一行上由空格分隔的两个字符串,c#,windows,visual-studio,console,console-application,C#,Windows,Visual Studio,Console,Console Application,我正在做一个简单的文件管理器,它必须在控制台上创建、修改、删除和重命名文件。这样做的目的是让用户输入“createfile.txt”这样的内容,然后创建文件。到目前为止,我只知道在键入命令后它会在哪里请求文件名,但我不希望这样。有什么想法吗 Console.Write("What do you want to do?: "); //Carlos, si lees esto en tu busqueda por copiones, este codigo es mio. Saludos - Car
Console.Write("What do you want to do?: "); //Carlos, si lees esto en tu busqueda por copiones, este codigo es mio. Saludos - Carlos Martinez.
string line = Console.ReadLine();
if (line == "exit") // Check String
{
Environment.Exit(0);
}
if (line == "create")
{
Create(args); //Go to create
}
else
Console.WriteLine("command does not exist\n");
Main(args);
}
static void Create(string[] args)
{
Console.Write("File name: ");
string name = Console.ReadLine(); // Agarrar string
using (StreamWriter writer =
new StreamWriter(name, true))
writer.Close();
{
Console.WriteLine("File created\n");
Main(args); //Regresa
}
}
当您键入一行并点击
Enter
时,Console.ReadLine
的结果将与您键入的内容完全相同,即create test.txt
。可以在空间上拆分字符串:
string line = Console.ReadLine();
string split = line.Split(new [] {' '});
string command = split[0];
string name = split[1];
if (line == "create")
{
Create(name);
}
Create
方法也应更新为接受单个字符串
参数:
static void Create(string fileName)
请注意,上面的内容不能很好地处理输入:
- 如果只输入命令,即
create
- 如果您输入一个带有空格的文件名,即
create C:\Users\David Zych\test.txt
Console.Write("What do you want to do?: ");
string line = Console.ReadLine();
if (line.StartsWith("exit"))
{
Environment.Exit(0);
}
// Notice the space after the create word
if (line.StartsWith("create "))
{
Create(line.Substring(6));
}
else
Console.WriteLine("command does not exist\n");
当然,Create方法应该更改为只获取一个字符串,即文件名
static void Create(string fileName)
{
if(fileName.Length > 0)
{
Console.Write("File name: ");
using (StreamWriter writer = new StreamWriter(fileName, true))
;
Console.WriteLine("File created");
}
else
Console.WriteLine("No filename given");
}
对于包含空格的路径,如
C:\Program Files\bla bla.txt
如何处理基于空格(“”)的字符串,然后将第一个数组元素与“exit”和“create”进行比较不使用路径,它将暂时位于同一文件夹中。是的!这似乎是一张好票。非常感谢。