我已经查看了与我的情况相关的stackoverflow问题。 他们没有回答基本问题。 我的应用程序允许用户键入完全限定的路径。此路径必须是文件。该文件尚不存在(它们正在保存备份)。如果使用getattributes方法,它将在找不到文件时触发try / catch的catch。 (因为它不应该)。我需要捕获用户是否只是放入目录的路径,如果路径是文件不存在的文件。如果发生任何一种情况,我需要向用户提供定向反馈。我正在使用C#和4.5.2的.NET框架。
感谢您的任何指示。
答案 0 :(得分:2)
文件不必具有文件扩展名,以使其成为有效文件。因此,您不能依赖具有文件扩展名的路径将其称为文件。
using System;
namespace FileFolder_46434099
{
class Program
{
static void Main(string[] args)
{
string incomingpath = @"C:\temp\3075";
if (System.IO.Directory.Exists(incomingpath))
{
Console.WriteLine("path is a directory");
}
else if (System.IO.File.Exists(incomingpath))
{
Console.WriteLine("path is of a file");
}
Console.ReadLine();
}
}
}
在这种情况下...... C:\temp\3075
实际上是一个文件,程序就这样返回。
答案 1 :(得分:0)
你可以尝试一下,看看这是不是你想要的。我假设用户将输入文件的扩展名,如您所述,用户将输入完全限定的路径。
static void Main(string[] args)
{
Console.WriteLine("Enter fully qualified path of the file to be accessed.");
var eneteredPath = Console.ReadLine();
var isItFile = Path.HasExtension(eneteredPath);
if (isItFile)
{
Console.WriteLine($"Specified File exists = {File.Exists(eneteredPath)}");
}
else if(Directory.Exists(eneteredPath))
{
Console.WriteLine($"Specified path is to a directory.");
}
}
答案 2 :(得分:0)
所以我有一个带有txtInput的简单表单和一个按钮:
using System.IO;
private void cmdCheck_Click(object sender, EventArgs e)
{
if (Directory.Exists(txtInput.Text))
{
// This is a directory, not a file.
}
else
{
try
{
if (File.Exists(txtInput.Text))
{
var fileInfo = new FileInfo(txtInput.Text);
// File exists and now we have the information. Alert the user.
}
else
{
// File doesn't exist. Do things.
}
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message, "ERROR");
}
}
}
这是否符合您的要求?
答案 3 :(得分:0)
这可以帮助您https://www.dotnetperls.com/path
路径。这条路通向某个地方。它介于树木和建筑物之间。云移动。阳光到达地面,我们的方向很明确。 使用Path,.NET Framework中的一个类,我们有内置方法。该类在处理文件路径时有帮助。它是System.IO的一部分。