我在Visual Studio C#中有一个应用程序,其中包括保存到文本文件中,如何将.exe发送到另一台计算机而没有保存例外?
我需要通过电子邮件发送.exe文件(是的,这是可能的),此应用程序包括保存游戏状态。如何发送此.exe文件并让用户能够保存在他的计算机中?
问题是当我在另一台计算机上发送我的应用程序的可执行文件时,我在保存时遇到异常。因为在另一台计算机上我没有我正在保存游戏的文本文件。
我在这里保存:
StreamWriter myFile = File.CreateText(Directory.GetCurrentDirectory()+“// ConnectFour.txt”);
在项目的obj / Debug /中..
感谢您的帮助:)
答案 0 :(得分:2)
发送可执行文件应该可以正常工作。
确保其他计算机安装了相应的Microsoft .NET Framework。
最新的框架安装程序:MSDN
此外,请确保将要保存文件的路径存在于远程计算机上。例如,如果您尝试保存到D:\驱动器并且它不存在。你会得到一个例外。
答案 1 :(得分:1)
通过电子邮件发送可执行文件时的问题是防病毒扫描程序。其中一些人拒绝包含可执行文件的电子邮件。其他人接受邮件但删除附件。
解决方案包括隐藏可执行文件。这可以通过压缩可执行文件并发送zip文件来完成。
通常这足以解决问题,但是一些防病毒扫描程序非常智能,甚至可以识别zip附件中的可执行文件。这里的解决方案是使用密码加密zip文件。我经常只使用密码“pwd”并在电子邮件文本中提及它。反病毒还不够智能,无法理解本文。
<强>更新强>
现在我理解你的问题了。它与发送可执行文件无关。
应用程序可以确定它是从哪个目录开始的,如
string dir = System.IO.Path.GetDirectoryName(
System.Windows.Forms.Application.ExecutablePath
);
另一种方法是(如果你没有对WinForms的引用):
string dir = System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetEntryAssembly().Location
);
答案 2 :(得分:1)
当前用户很可能无法写入当前位置。
使用“当前目录”很危险,因为您无法控制从哪个位置启动应用程序。它对命令行实用程序非常有用,但对于常规窗口应用程序则没有那么多。使用您知道可以将文件保存到的位置 - 即“我的文档”。
var filePath = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\",
ConnectFour.txt");
using(var myFile = File.CreateText(filePAth))
{
// save data here.
}
答案 3 :(得分:1)
您可能没有足够的权限将文件保存在远程计算机上。如果您向我们提供有关正在抛出的确切异常(异常类型,消息,堆栈跟踪等)的更多信息,您将获得更准确的答案。