Androidスマホの内部共有ストレージにファイルをコピーする。又はファイルを取得する
(スマホとPCをUSB接続する)
参照の追加
「Microsoft Shell Controls And Automation」を追加する
Shell shell = new Shell();
Folder desktopFolder = shell.NameSpace(0); // デスクトップ
string smartFileName = "smart.txt";
string pcFileName = "pc.txt";
try
{
// Androidのデータベースの場所(コピー)
Folder compFolder = shell.NameSpace(17); // 17 = マイコンピュータ
Folder smartFolder = SearchFolder(compFolder, "Ruis_ske48"); // スマホ
Folder internalFolder = SearchFolder(smartFolder, "内部共有ストレージ"); // フォルダの検索
// スマホからファイルをコピー
foreach (var item in internalFolder.Items())
{
if (((FolderItem2)item).Name == smartFileName)
{
// Copy
desktopFolder.CopyHere(item);
break;
}
}
// PCからスマホへファイルをコピー
foreach (var item in desktopFolder.Items())
{
if (((FolderItem2)item).Name == pcFileName)
{
// Copy
internalFolder.CopyHere(item);
break;
}
}
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
private Folder SearchFolder(Folder myFolder, string folderName)
{
Folder retFolder = null;
foreach (FolderItem currFolderItem in myFolder.Items())
{
if (currFolderItem.IsFolder && currFolderItem.Name == folderName)
{
retFolder = (Folder)currFolderItem.GetFolder;
break;
}
}
if (retFolder == null)
{
string errorString = string.Format("SearchFolder Error : {0}", folderName);
throw new Exception(errorString);
}
return retFolder;
}