我正在创建一个应用程序,它在我手动创建的一个文件夹中使用照片和XML文件, 我想让用户通过应用程序在运行时更新该文件夹的数据(添加照片和编辑Xml文件) 我的问题是什么是最好的方法以及放置该文件夹的位置, 我知道我必须把那些相对的路径放在一边让我感到很困惑 是否在AppData中如果是这样的话。
答案 0 :(得分:6)
// Use this to get the common directory
string CommonDir = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
// And combine it with your own.
// On Window7 this will return "c:\ProgramData\YourCompany\YourProduct"
string YourDir = Path.Combine(CommonDir, @"YourCompany\YourProduct");
// And create the directory / ensure it exists
System.IO.Directory.CreateDirectory(YourDir);
您可以从系统中获取其他Special Folders,例如MyDocuments
或Desktop
,以满足您的最佳需求。
答案 1 :(得分:2)
首先右键单击项目资源管理器并添加新文件夹,它会显示空文件夹并将此文件放入其中。
答案 2 :(得分:0)
您可以使用不同的隔离范围管理文件,而不必担心其实际位置:
应用程序 - 作用于应用程序的隔离存储。
程序集 - 作用于程序集标识的独立存储。
域 - 作用域应用程序域标识的隔离存储。
计算机 - 作用于计算机的隔离存储。
无 - 没有孤立的存储空间使用。
漫游 - 可以将隔离的商店放置在文件的某个位置 可能漫游的系统(如果漫游用户数据已启用) 基础操作系统)。
用户 - 按用户身份确定的隔离存储空间。
但是你可能不需要对文件隔离进行这样的控制。在这种情况下,您只需使用本地用户的aplication文件夹:
string path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
看看:Environment.SpecialFolder - 那里有很多有用的地方。
当然,您可以随时使用应用程序的文件夹:
AppDomain.CurrentDomain.BaseDirectory
访问它的另一种方式:Best way to get application folder path
答案 3 :(得分:0)
您不应将文件夹放在解决方案的一个文件夹中,例如AppData(AppData实际上是一个文件夹,可以包含数据库文件),因为当您完成应用程序的开发时,您只需获得.EXE输出文件(即放在Debug文件夹中),这是您使用它的文件,或者例如将其提供给您的客户。 (但是你说的AppData这样的文件夹只放在你的解决方案中)
因此,您可以随意创建文件夹。 但是我建议你在应用程序的当前目录中创建它。 (.EXE文件)
您可以使用Environment class =>来引用当前目录。 Environment.CurrentDirectory