繁体   English   中英

如何包含保存在可执行文件中的文本文件中?

[英]How can I include saving in a text file in executable file?

我在Visual Studio C#中有一个应用程序,其中包括保存到文本文件中,如何将.exe发送到另一台计算机,并且在保存时没有异常?

我需要通过电子邮件发送.exe文件(是可能的),并且此应用程序包括保存游戏状态。 如何发送此.exe文件,并让用户能够将其保存在计算机中?

问题是,当我在另一台计算机上发送应用程序的可执行文件时,保存时出现异常。 因为在另一台计算机上,我没有保存游戏的文本文件。

我在这里保存:

StreamWriter myFile = File.CreateText(Directory.GetCurrentDirectory()+“ // ConnectFour.txt”);

在项目的obj / Debug /中。

谢谢你的帮助 :)

发送可执行文件应该可以正常工作。

确保另一台计算机已安装适当的Microsoft .NET Framework。

最新的框架安装程序: MSDN

此外,请确保远程计算机上存在用于保存文件的路径。 例如,如果您要保存到D:\\驱动器,并且它不存在。 您将获得一个例外。

通过电子邮件发送可执行文件时出现的问题是防病毒扫描程序。 其中一些拒绝包含可执行文件的电子邮件。 其他人接受邮件,但删除附件。

解决方案包括隐藏可执行文件。 这可以通过压缩可执行文件并发送zip文件来完成。

通常,这足以解决问题,但是某些防病毒扫描程序非常聪明,甚至可以识别zip附件中的可执行文件。 此处的解决方案是使用密码对zip文件进行加密。 我经常只使用密码“ pwd”并在电子邮件文本中提及它。 防病毒软件还不够聪明,无法理解本文。


UPDATE

现在我明白了您的问题。 它与发送可执行文件无关。

应用程序可以像这样确定从哪个目录启动

string dir = System.IO.Path.GetDirectoryName(
    System.Windows.Forms.Application.ExecutablePath
);

一种替代方法是(如果您没有对WinForms的引用):

string dir = System.IO.Path.GetDirectoryName(
    System.Reflection.Assembly.GetEntryAssembly().Location
);

当前用户最不可能写当前位置。

使用“当前目录”很危险,因为您无法控制从何处启动应用程序。 它对于命令行实用程序非常有用,但对于常规的窗口应用程序则不那么有用。 使用您知道可以将文件保存到的位置-即“我的文档”。

var filePath = Path.Combine(
   Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\",
   ConnectFour.txt");
using(var  myFile = File.CreateText(filePAth))
{
  // save data here.
}

您可能没有足够的权限将文件保存在远程计算机上。 如果您向我们提供有关正在抛出的确切异常的更多信息(异常类型,消息,堆栈跟踪等),您将获得更准确的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM