【问题标题】:C# Equivalent for FILE declaration [duplicate]FILE 声明的 C# 等效项 [重复]
【发布时间】:2012-09-19 09:16:03
【问题描述】:

可能重复:
change file extension c#

下面的代码是c++,我怎么用c#来表示?

FILE fp = fopen(ChangeFileExt(Application.ExeName, ".DAT").c_str(), "w");

另一个与这个话题相关的问题是:

c# 中的等价物:

fputs((thisstring.CommaText + "\n").c_str(), fp); 

【问题讨论】:

  • 我怀疑这不是他感兴趣的文件扩展名更改。阅读帖子的标题...
  • 您要写入文本(fprintf)还是二进制数据?在 .NET 中是分开的。
  • 如果您有任何问题 - 除了您的第一个问题 - 请将其作为新问题发布。 =)
  • 这个字符串是一个变量
  • fputs 是基于文本的,使用 StreanWriter。

标签: c# c++ file c++builder


【解决方案1】:

怎么样:

FileStream fs = File.OpenWrite(Path.ChangeExtension(Application.ExeName, "DAT"));

【讨论】:

  • 感谢贾斯汀,正是我想要的 :-)
  • 没问题,你能接受吗?
  • 谢谢伙计们,现在开始工作了...与同一主题相关的另一个问题在 c# 中等效于以下内容:fputs((thisstring.CommaText + "\n").c_str() , fp);
  • 为了清楚起见,请将此作为一个单独的问题提出?
【解决方案2】:

您可以根据 EXE 名称打开(创建)一个 FileStream:

FileStream fs = File.Create(
        Path.ChangeExtension(Application.ExeName, "dat"));

或者 TextWriter 更接近 C/C++ FILE

StreamWriter writer = File.CreateText(
        Path.ChangeExtension(Application.ExeName, "dat"));

但请注意,普通用户禁止写入 ProgramFiles 文件夹。

【讨论】:

  • +1 表示默认访问控制。
【解决方案3】:

还没有编译,但这可能会给你一个想法。

string appName = Assembly.GetExecutingAssembly().Location;
FileStream s = File.Open(Path.ChangeExtension(appName , ".DAT"), FileMode.OpenOrCreate);

【讨论】:

  • 谢谢大家,现在可以使用了...使用了贾斯汀发布的代码。与同一主题相关的另一个问题在 c# 中等效于以下内容: fputs((thisstring.CommaText + "\n").c_str(), fp);谢谢卡姆伦
  • var writer = new System.IO.StreamWriter("c:\filepath\file.txt"); writer.Write("这是一个没有换行符的字符串。"); writer.WriteLine("这是文件中的一行。");
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-22
  • 1970-01-01
  • 1970-01-01
  • 2013-02-09
  • 2013-07-03
相关资源
最近更新 更多