我正在处理一个TreeView目录和文件.用户可以选择文件或目录,然后使用它执行某些操作.这要求我有一个方法,根据用户的选择执行不同的操作.
目前我正在做这样的事情来确定路径是文件还是目录:
bool bIsFile = false;
bool bIsDirectory = false;
try
{
string[] subfolders = Directory.GetDirectories(strFilePath);
bIsDirectory = true;
bIsFile = false;
}
catch(System.IO.IOException)
{
bIsFolder = false;
bIsFile = true;
}
Run Code Online (Sandbox Code Playgroud)
我不禁觉得有更好的方法来做到这一点!我希望找到一个标准的.NET方法来处理这个问题,但我无法做到这一点.是否存在这样的方法,如果不存在,确定路径是文件还是目录的最直接的方法是什么?
我发现这个关于文件和目录的其他堆栈溢出问题,答案包括这个声明:
bool isDir = (File.GetAttributes(path) & FileAttributes.Directory)
== FileAttributes.Directory;
Run Code Online (Sandbox Code Playgroud)
他的问题是关于.net,我在Visual Studio中使用C#.net进行编码.在同一语句中同时具有赋值运算符和等于运算符的能力是否适用于所有.net语言,还是特定于某些语言?另外,我可以获得上述代码如何工作的解释吗?假设path指的是一个目录,我希望isDir它是真的,但任何人都可以解释为什么?
我有一个函数,Path通过确定String Path是a File还是a来自动创建指定的Directory.
通常情况下,我会使用此路径已经exists:
FileAttributes attributes = File.GetAttributes("//Path");
if ((attributes & FileAttributes.Directory) == FileAttributes.Directory)
{
Directory.CreateDirectory("//Path");
}
Run Code Online (Sandbox Code Playgroud)
但如果不是呢?如何检查是否String Path是File或Directory如果它不存在呢?