Dan*_*vak 5 c# system.io.fileinfo
我假设.NET DirectoryInfo和FileInfo对象类似于Java的java.io.File,即它们代表抽象路径,并不一定连接到现有的物理路径.
我可以用不同的方式做我正在尝试做的事情(清空文件夹并创建它,如果它不存在),但是我想知道为什么不这样做:
using System.IO;
namespace TestWipeFolder
{
internal class Program
{
private static void Main(string[] args)
{
var di = new DirectoryInfo(@"C:\foo\bar\baz");
if (di.Exists)
{
di.Delete(true);
}
// This doesn't work. C:\foo\bar is still there but it doesn't remake baz.
di.Create();
}
}
}
Run Code Online (Sandbox Code Playgroud)
更新:我重启后尝试了相同的代码,它工作正常.我仍然想知道Java File对象有什么相似之处,以及删除DirectoryInfo对象引用的文件夹是否可以搞砸了,但现在却处于后台.
该类DirectoryInfo在您创建 DirectoryInfo 实例时为您提供目录的信息。
如果对目录进行更改(例如删除),则该信息不会反映到您当前的实例。您需要调用.Refresh()实例来更新 DirectoryInfo 实例的状态。
LinqPad 测试代码:
var di = new DirectoryInfo(@"C:\foo\bar\baz");
di.Dump();
if (di.Exists){
di.Exists.Dump(); // prints out true
di.Delete(true);
di.Exists.Dump(); // still prints out true
di.Refresh();
di.Exists.Dump(); // prints out false
}
di.Create();
di.Refresh();
di.Exists.Dump(); // prints out true
Run Code Online (Sandbox Code Playgroud)
与 java 类似的类是System.IO.File和System.IO.Directory。使用此类,您将获得文件和目录的当前状态。
| 归档时间: |
|
| 查看次数: |
791 次 |
| 最近记录: |