2012-08-04 126 views
7

在C#中,如何将相机中的文件复制到本地驱动器?相机通过USB连接,不会显示为标准驱动器。如何从通过USB连接的相机读取文件

我正在使用Sony Handycam HDR-CX160。我想写一个小型的c#windowsform应用程序,从设备复制视频文件。

那么我的应用程序如何从通过USB连接的设备上复制文件?它不会显示为驱动器,但会显示在Windows资源管理器中。当我在C#中搜索驱动器时,它不在列表中?

谢谢!

======== UPDATE =======

我会尝试问这个问题的不同方式,希望它会被重新打开。

使用C#我需要将文件从相机复制到本地硬盘。如果我新建路径,这行代码就可以做到。

string cameraPath = ????? 
string sourcePath = Path.Combine(cameraPath, @"\Video\2012-1-1.WMV"); 
string targetPath = @"C:\Video\2012-1-1.WMV"; 
System.IO.File.Copy(sourceFile, destFile, true); 

那么我该如何解决cameraPath?还有另一种方法可以一起做到这一点吗?

+3

这个问题太广泛了。一旦你被困在你的项目的某个特定方面,最好回来。 – 2012-08-04 22:17:30

+3

不确定为什么有投票结束?这是一个真正的C#问题我也找不到答案。我只需要一种编程方式来连接设备,以便我可以从中复制文件。 – 2012-08-04 22:24:16

+1

这是关于USB驱动器,但也许你会发现一些有用的东西http://www.codeproject.com/Articles/18062/Detecting-USB-Drive-Removal-in-aC-Program – Archibald 2012-08-04 22:24:26

回答

4

我不知道关于您设备的具体情况,最好的办法可能是使用设备附带的软件。

但是,如果数码相机不显示自己作为驱动器,您可以从中读取文件,可能支持Windows Image Acquisition。使用C#的最简单方法是使用Windows Image Acquisition Automation Layer。 Scott Hanselman在第9频道有一个陈旧的Coding4Fun文章Look at me! Windows Image Acquisition

如果您能够从相机中取出闪存卡,也可以尝试使用读卡器读取该卡以直接访问这些文件。

此外,如果您想在连接相机时运行应用程序,则需要register an AutoPlay event handler。有相机连接时的事件。

+0

我仍在研究,但WIA让我走上了一条我希望能找到答案的道路。谢谢! – 2012-08-08 17:22:28

相关问题