C# スマホの内部共有ストレージにファイルをコピーする

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;
}
 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください