C# 使用文本文件数据集创建可移植应用程序

C# 使用文本文件数据集创建可移植应用程序,c#,C#,我有一个windows窗体应用程序,它可以处理文本文件的数据集。我在其他系统上测试了这个应用程序,它工作正常。但是要运行这个应用程序,数据集必须直接复制到C驱动器中。是否有任何解决方案可以在不将数据集复制到C驱动器或任何目录的情况下运行应用程序 读取数据集的脚本格式 StreamReader fileitem = new StreamReader("c:\\dataset.txt"); 我希望得到你的详细评论 看起来您正在查找System.Windows.Forms.Application.S

我有一个windows窗体应用程序,它可以处理文本文件的数据集。我在其他系统上测试了这个应用程序,它工作正常。但是要运行这个应用程序,数据集必须直接复制到
C驱动器中。是否有任何解决方案可以在不将数据集复制到
C驱动器
或任何目录的情况下运行应用程序

读取数据集的脚本格式

StreamReader fileitem = new StreamReader("c:\\dataset.txt");

我希望得到你的详细评论

看起来您正在查找
System.Windows.Forms.Application.StartupPath

这是一个环境变量,它为您提供exe文件的启动路径。这意味着,如果您从USB驱动器G:\MyApp运行应用程序。您可以使用:

StreamReader fileitem = new StreamReader(Path.Combine(Application.StartupPath, "dataset.txt"));

你到底在问什么。。。。C#是否可以从其他位置读取数据文件。。。。UNC路径(如\\server\share\folder\file.txt)或其他字母驱动器(如D:E:etc…)。。。。当然如果不是这个问题,那是什么?无论您的文件夹路径是什么,请在StreamReader中使用该路径。您可以将文件名/路径放在App.config中,然后从中读取值。然后可以将应用程序的不同实例配置为使用不同的文件位置。。。。还有另一种解释,即“如何为我的数据配置不同的位置,使其不被硬编码”。您需要更清楚,否则我们无法帮助您。您不需要使用绝对路径,如c:\dataset.txt-您可以使用相对路径,如“mydatafolder\\dataset.txt”,这将是相对于应用程序exe所在位置的文件夹。值得指出的是(取决于文件的大小以及进行分析时读取文件的频率),这实际上可能比复制应用程序慢,因为USB笔驱动器比硬盘慢得多。谢谢@celerno。有没有办法动态检测路径?例如,“StreamReader fileitem=newstreamreader(“c:\\dataset.txt”)”。如果我将路径更改为另一个路径,它会自动更改?我已在答案中添加了详细信息。阅读我发布的链接:来源: