应用程序开始路径:Application.StartupPath; /// <summary> /// 获取启动了应用程序可执行文件下的目录的完整路径(不含文件名) /// </summary> /// <param name="directoryName">要获取执行文件目录下的目录名称</param> /// <returns></returns> public static string GetApplicationDirectoryOfPath(string directoryName) { string appPath = Path.Combine(Application.StartupPath, directoryName); DirectoryInfo dInfo = new DirectoryInfo(appPath); if (!dInfo.Exists) { dInfo = Directory.CreateDirectory(appPath); } return dInfo.FullName; } /// <summary> /// 把二进制流保存为本地文件 /// </summary> /// <param name="fileFullName">保存目的地的完整文件路径(包括文件名)</param> /// <param name="file">文件的二进制流</param> /// <param name="isDeleted">如果文件存在是否删除原文件</param> public static bool SaveToFile(string fileFullName, byte[] file, bool isDeleted) { bool result = false; if (File.Exists(fileFullName)) { if (isDeleted == true) { File.Delete(fileFullName); } } if (File.Exists(fileFullName) == false) { using (FileStream fs = new FileStream(fileFullName, FileMode.CreateNew)) { using (BinaryWriter bw = new BinaryWriter(fs)) { bw.Write(file, 0, file.Length); result = true; } } } return result; } /// <summary> /// 从资源文件中获取Stream /// </summary> /// <param name="resourceFullName">资源文件的完整路径(例如:CClient.FastReports.StockDeductReport.fr3)</param> /// <returns></returns> public static Stream GetStreamFromResource(string resourceFullName) { Assembly a = Assembly.GetCallingAssembly(); return a.GetManifestResourceStream(resourceFullName); }