问题 我的应用程序使用的图标和音乐存储在哪里?

dlp_coasters

新成员
已加入
2019年4月2日
留言内容
2
编程经验
Beginner
我应该将c#应用程序使用的所有文件(如音乐或图标)存储在哪里...有人告诉我它必须存储在"bin/Debug"文件夹,但我不太确定。在此先感谢您的协助!
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,563
地点
悉尼,澳大利亚
编程经验
10+
说应该将某些东西存储在 bin \ Debug 文件夹具有误导性。该文件夹是VS放置Debug生成的生成过程输出的位置。你自己什么都不要放。对于发布版本,将输出放置在 bin \发布 folder and you copy it from there to deploy it. If you have content files for your application then you can add them to the project in the Solution Explorer and set the Build Action property to Content and the 复制 to output directory property to 复制 if newer. They will then be copied to the output folder, wherever that may be, during the Build process and you can access them in code by referring to the program folder as the root path, e.g. Application.StartupPath in WinForms. I'd probably suggest adding a folder to your project and adding the files under that. In that case, the folder will be copied to the output as well, so account for that in the path you use at run time.

Another option is to add the files to the Resources page in the project properties and then access the data using Properties.Resources in code. Depending on the type of data, you may get an object that you can use directly or a stream that you can write to a file or an object. The main advantage of resources is that the user cannot edit or delete them as they can with separate files.
 

dlp_coasters

新成员
已加入
2019年4月2日
留言内容
2
编程经验
Beginner
好吧,我问了这个问题,但是我什至不知道像音乐这样的文件是否必须在某个目录下...是否必须?我的意思是,如果我当然在计算机上构建该应用程序,则该应用程序可以处理该背景音乐,但是如果我将其发送给计算机上没有音乐文件的人,该应用程序会说它找不到音乐文件吗?
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,563
地点
悉尼,澳大利亚
编程经验
10+
这就是为什么您不对绝对路径进行硬编码的原因:因为它可能不存在于另一台计算机上。您几乎总是使用相对于知名位置的局部路径。如果您要遵循我之前提供的建议并添加 歌曲.mp3 到一个名为 音乐 那么您可以像下面这样获取该文件的完整路径:
C#:
var filePath = System.IO.Path.Combine(Application.StartupPath, "Song.mp3");
You can use Environment.GetFolderPath to get the paths of various well-known system folders, e.g. the current user's 文件资料 folder.
 
最佳 底部