C# 只需从内部项目文件夹获取文件
可能重复:C# 只需从内部项目文件夹获取文件,c#,windows-phone-7,C#,Windows Phone 7,可能重复: 我是C#的新手,这让我很恼火 我的应用程序从我在解决方案资源管理器上创建的名为images的文件夹中加载一组图像。如果我使用URI之类的硬编码,我可以看到这些图像,但我想做的是将这些图像按常规命名,然后加载。我见过一些这样的问题,但解决不了我的问题。我试着这样做: DirectoryInfo directoryInfo = new DirectoryInfo(@"/Images"); foreach (FileInfo file in directoryInfo.GetFiles(
我是C#的新手,这让我很恼火 我的应用程序从我在解决方案资源管理器上创建的名为
images
的文件夹中加载一组图像。如果我使用URI之类的硬编码,我可以看到这些图像,但我想做的是将这些图像按常规命名,然后加载。我见过一些这样的问题,但解决不了我的问题。我试着这样做:
DirectoryInfo directoryInfo = new DirectoryInfo(@"/Images");
foreach (FileInfo file in directoryInfo.GetFiles()) {
photos.Add(new Photo() { FileName = file.FullName, PhotoSource = GetImageSource("Images/" + file.FullName) });
}
directoryInfo
始终设置为空。解决方案资源管理器中显示的我的项目层次结构如下所示:
Project
Main.xaml
Maim.xaml.cs
Images
1.jpg
2.jpg
...
谢谢您的帮助。也许您想使用
string path = Path.Combine(Environment.CurrentDirectory, "Images");
foreach (string file in Directory.GetFiles(path)
{
photos.Add(new Photo {FileName = file, PhotoSource = GetImageSource(Path.Combine(path, Path.GetFileNameWithoutExtension(file))});
}
它返回文件夹内容的列表
Combine将单个字符串组合成完整的路径(因此您不必担心后偏移)
路径名称空间被低估了,我建议您仔细查看它,因为它会节省您很多时间。也许您想使用它
string path = Path.Combine(Environment.CurrentDirectory, "Images");
foreach (string file in Directory.GetFiles(path)
{
photos.Add(new Photo {FileName = file, PhotoSource = GetImageSource(Path.Combine(path, Path.GetFileNameWithoutExtension(file))});
}
它返回文件夹内容的列表
Combine将单个字符串组合成完整的路径(因此您不必担心后偏移)
路径名称空间被低估了,我建议您仔细查看它,因为它会节省您很多时间。来自:
对于Windows Phone应用程序,所有I/O操作仅限于
独立存储,无法直接访问底层
操作系统文件系统或其他文件系统的隔离存储
应用程序
因此,您无法以希望的方式访问图像文件夹
由于您无论如何都无法将图像动态添加到XAP,因此可用图像将保持不变。您似乎只需手动添加URI:
BitmapImage-myImage=new-BitmapImage(新Uri(“Images/myImage.png”,UriKind.Relative));
如果您有不同地区的不同图像,可以在资源文件中包含图像名称/路径,然后从中创建它们
或者,如果您有一组默认图像,然后将有一些用户添加的图像,并且您希望迭代所有这些图像,则可以在第一次启动时将默认图像从图像文件夹写入IsolatedStorage。有关使用IsolatedStorage的详细信息,您可以迭代应用程序IsolatedStorage Fil中的目录和文件e(参见)。来自:
对于Windows Phone应用程序,所有I/O操作仅限于
独立存储,无法直接访问底层
操作系统文件系统或其他文件系统的隔离存储
应用程序
因此,您无法以希望的方式访问图像文件夹
由于您无论如何都无法将图像动态添加到XAP,因此可用图像将保持不变。您似乎只需手动添加URI:
BitmapImage-myImage=new-BitmapImage(新Uri(“Images/myImage.png”,UriKind.Relative));
如果您有不同地区的不同图像,可以在资源文件中包含图像名称/路径,然后从中创建它们
或者,如果您有一组默认图像,然后将有一些用户添加的图像,并且您希望迭代所有这些图像,则可以在第一次启动时将默认图像从图像文件夹写入IsolatedStorage。有关使用IsolatedStorage的详细信息,您可以迭代应用程序IsolatedStorage Fil中的目录和文件e(请参阅)。问题是关于Windows Phone的。您无权访问Windows Phone上的文件系统。是的,它不起作用。
环境。CurrentDirectory
正在引发异常尝试访问该方法失败:system.Environment.get\u CurrentDirectory()
。还有什么想法吗?谢谢。问题是关于Windows Phone的。你没有访问Windows Phone上的文件系统的权限。是的,它不工作。环境。CurrentDirectory
正在引发异常尝试访问该方法失败:system.Environment.get\u CurrentDirectory()
。还有什么想法吗?谢谢。