c# - 简单的 C# 应用程序无法正常工作,从 Visual Studio 中运行时工作正常

标签 c# .net windows visual-studio-2010 file-io

我是 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/

相关文章:

c# - 什么是 MvcHtmlString 以及何时应该使用它?

C# 反射 : Getting the fields of a DataRow from a Typed DataSet

c# - Asp.Net WebApi 继承与 BaseController

windows - Firefox 4 Windows 仅 "bug"和 :after/:before CSS selectors?

c - 在 Windows 中启动失败的二进制文件未找到 Eclipse for C

c# - 避免使用 linq 和动态条件(过滤器)多次浏览列表

c# - EF 核心自引用

c# - 在每一页检查 session ?

.net - 有选择地禁用 .NET Framework 的版本

c - <io.h>_filelength 和 _filelengthi64 总是返回 0