我是 C# 和 VS 的新手,我遇到了一个奇怪的问题。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ExampleApplication {
class Program {
static void Main(string[] args) {
FileInfo fi = new FileInfo("C:\\TEST.TXT");
fi.Create();
Console.WriteLine("File exists: {0}", fi.Exists);
}
}
}
这是我的程序,它创建了一个文件 TEST.TXT。当我使用 Debug -> Start Debugging 命令 (F5) 在 VS 2010 中运行程序时,程序运行正常并创建了文件。
但是,如果我构建解决方案,然后使用 cmd 提示从 .exe 运行程序:
C:\...\Visual Studio 2010\Projects\ExampleApplication\ExampleApplication\bin\Debug\ExampleApplication.exe
它运行输出:文件存在:真。但是文件没有创建。有人有什么想法吗?
谢谢
最佳答案
也许文件流最终没有被操作系统释放,所以文件系统没有反射(reflect)最近的变化?只需尝试在创建后显式关闭新文件流:
FileInfo fi = new FileInfo("C:\\TEST.TXT");
using (var stream = fi.Create());
请让我们知道它是否有效,因为这是一个有点疯狂的想法;)我相信问题可能更简单
关于c# - 简单的 C# 应用程序无法正常工作,从 Visual Studio 中运行时工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9659317/