在C#控制台application.exe上通过拖放获取文件夹路径
本文关键字:拖放 获取 文件夹 路径 控制台 application exe | 更新日期: 2023-09-27 18:27:24
我编写了一个简单的程序,当文件在.exe上拖动时,它会将文件的路径复制到剪贴板并退出。问题是它似乎不适用于文件夹,我想增加文件夹的兼容性。
这是代码:
using System;
using System.IO;
using System.Windows.Forms;
namespace GetFilePath
{
class Program
{
[STAThread]
static void Main(string[] args)
{
Console.Title = "Getting path...";
if (args.Length > 0 && File.Exists(args[0]))
{
string path;
path = args[0];
Console.WriteLine(path);
Clipboard.Clear();
Clipboard.SetText(path);
MessageBox.Show("Path copied to clipboard", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
有什么建议吗?我知道该代码可能不是我想要实现的最佳代码,但它是有效的,尽管您可以对代码的改进留下任何评论。
对于目录,可以使用Directory.Exists
。所以你可以做:
if (args.Length > 0)
{
if (File.Exists(args[0]))
{
string path;
path = args[0];
Console.WriteLine(path);
Clipboard.Clear();
Clipboard.SetText(path);
MessageBox.Show("Path copied to clipboard", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else if (Directory.Exists(args[0]))
{
...
}
}
或者,如果您希望对文件和目录进行相同的处理,请将两者结合起来:
if (args.Length > 0 && (File.Exists(args[0]) || Directory.Exists(args[0])))
{
string path;
path = args[0];
Console.WriteLine(path);
Clipboard.Clear();
Clipboard.SetText(path);
MessageBox.Show("Path copied to clipboard", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Information);
}