从USB驱动器运行程序

时间:2014-11-03 15:27:46

标签: c# winforms portability

我有一个C#winForms程序,旨在从多台PC上运行USB驱动器。当我将USB驱动器连接到另一台PC时,驱动器号更改。如何让我的驱动器号在所有PC上保持一致,或使我的程序真正“可移植”。我需要驱动器号,因为我有一个SQLite数据库数据源指向某个目录。我还有从特定目录打开的PDF文件与特定的驱动器号。感谢

2 个答案:

答案 0 :(得分:2)

您可以获得正在执行的装配路径。

string path = (new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath;

从那里,您可以获得驱动器号(路径根):

string drive = Path.GetPathRoot(path);

如果您的文件与可执行文件位于同一目录中,则可以获取如下文件路径:

string directory = Path.GetDirectoryName((new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath);
string databaseFile = Path.Combine(directory, "filename.dbf");

答案 1 :(得分:0)

我猜您需要申请目录。

string path = System.IO.Directory.GetCurrentDirectory();

(如果您致电SetCurrentDirectory(),请使用此:System.IO.Path.GetDirectoryName(new System.Uri(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).LocalPath);

你想要你的驱动器吗? (驾驶总是1个字母)

path.Substring(0, 2);

如果不是一个字母,

path.Substring(0, path.IndexOf('\\') + 1);