2011-11-09 23 views
5

Android tabletimde bulunan dosyalara erişmesi gereken bir C# uygulamasına sahibim, açıkçası depolama için takılı sürücü harfini kullanabiliyorum ama bunu birden fazla yerde dağıtacağım ve dosyalara erişmek için tutarlı bir yol gerekir. ADB'yi programlı olarak arayabilirim, ancak yine de, birden fazla yerde konuşlandırıyorum ve SDK'yı her sisteme yükleyemiyorum. Programatik olarak PC'den android cihazdaki dosyalara erişme

yüzden ben de arıyorum tahmin: 1) programmaticaly her konumda de SDK yüklemek zorunda kalmadan C# (veya java) veya 2) Kullanım ADB üzerinden erişmek veya 3) sürücüyü bulun Takılan cihazda Eğer mümkünse

PS olarak bu kadar sorunsuz yapmaya çalışıyorum tahmin edebileceği gibi programlı

mektubu Bu şekilde çalışan bir uygulamanın bir örneği de HTC Sync, eğer uygulamanın hangi uygulamanın mükemmel olacağını bilen varsa.

+1

Çözüm # 3 ile giderdim. Bu bağlantı yararlı olabilir http://stackoverflow.com/questions/123927/how-to-find-usb-drive-letter – Loman

+2

ADB işlemlerini kullanmak için tam SDK'yı yüklemeniz gerekmez. Bunu birden fazla sisteme dağıtacağınız için, adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll (Windows dosyaları ..) paketleyebilirsiniz. Linux kullanıyorsanız, buna göre değiştirin. C# pencereleri varsayalım) dosya ve dosyalarınızı ayıklamak için ADB yöntemlerini çağıran kodunuzu yazın – dymmeh

+0

Öneriler için teşekkür ederiz. Onları deneyeceğim ve durumumda en iyi hangisinin çalıştığını göreceğim. –

cevap

0

Başlamanız için size neyle başlamıştım.

var drives = DriveInfo.GetDrives(); 

var removableFatDrives = drives.Where(
     c=>c.DriveType == DriveType.Removable && 
     c.DriveFormat == "FAT" && 
     c.IsReady); 

var andriods = from c in removableFatDrives 
       from d in c.RootDirectory.EnumerateDirectories() 
       where d.Name.Contains("android") 
       select c; 
+0

Bu kesinlikle yardımcı olur, ancak sürücü adı sadece "Çıkarılabilir Disk" d.Name.Contains ("android") her zaman yanlış döndürür. Bu yüzden belki de sadece çıkarılabilir sürücünün olup olmadığını kontrol edebilir ve eğer kullanıcıyı doğru olanı seçmesini istemez. –

+0

android, çıkarılabilir sürücünün en üst düzeyindeki bir klasörün adıdır. Bu nedenle, her bir android sürücü, "android" kelimesini içeren bir klasöre sahip olsaydı, bu belirleyici bir çözüm değildi, ancak bu, bir başlangıç ​​ –

+0

O idi. Tamam ben ne dediğini görüyorum, "android" içeren bir klasör yok varsayalım, her zaman sadece bir tane oluşturabilirim böylece sürücü tanımlanabilir. Öneri için teşekkürler. –

İlgili konular