酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

ファイルダウンロードのURLをダミーで作る

iPhoneアプリを作っていてもWindows Phoneアプリを作っていても、ダウンローダー的な実装を求められることが多々あります。あらかじめダウンロードするものが決まっている場合は良いのですが、大抵の場合対象となるファイル(とファイルサイズ)がバラバラです。

怒られるかもしれないけれど、大抵ダウンロード処理のテストを行うときは、約4〜10MBと程よい大きさなので、キヤノンさんのデジカメで撮影したサンプル写真を使わせて頂いています。

C#

/// <summary>
/// ダミーのURLをランダムで取り出すメソッド
/// </summary>
/// <returns></returns>
string GetDummyUrl() {

    var list = new List<string>();
    list.Add("http://cweb.canon.jp/camera/eosd/7d/sample/sample-images/downloads/001.jpg");
    list.Add("http://cweb.canon.jp/camera/eosd/7d/sample/sample-images/downloads/002.jpg");
    list.Add("http://cweb.canon.jp/camera/eosd/7d/sample/sample-images/downloads/003.jpg");
    list.Add("http://cweb.canon.jp/camera/eosd/7d/sample/sample-images/downloads/004.jpg");
    list.Add("http://cweb.canon.jp/camera/eosd/7d/sample/sample-images/downloads/005.jpg");
    list.Add("http://cweb.canon.jp/camera/eosd/kissx5/samples/downloads/01.jpg");
    list.Add("http://cweb.canon.jp/camera/eosd/kissx5/samples/downloads/02.jpg");
    list.Add("http://cweb.canon.jp/camera/eosd/kissx5/samples/downloads/03.jpg");
    list.Add("http://cweb.canon.jp/camera/eosd/kissx5/samples/downloads/04.jpg");
    list.Add("http://cweb.canon.jp/camera/eosd/kissx5/samples/downloads/05.jpg");
    list.Add("http://cweb.canon.jp/camera/powershot/s95/img/sample/portrait-org.jpg");
    list.Add("http://cweb.canon.jp/camera/powershot/s95/img/sample/still-org.jpg");

    // ランダムで取り出す
    var r = new System.Random();
    return list.ElementAt(r.Next(list.Count - 1));
}

VB.NET

''' <summary>
''' ダミーのURLをランダムで取り出すメソッド
''' </summary>
''' <returns></returns>
Private Function GetDummyUrl() As String

	Dim list = New List(Of String)()
	list.Add("http://cweb.canon.jp/camera/eosd/7d/sample/sample-images/downloads/001.jpg")
	list.Add("http://cweb.canon.jp/camera/eosd/7d/sample/sample-images/downloads/002.jpg")
	list.Add("http://cweb.canon.jp/camera/eosd/7d/sample/sample-images/downloads/003.jpg")
	list.Add("http://cweb.canon.jp/camera/eosd/7d/sample/sample-images/downloads/004.jpg")
	list.Add("http://cweb.canon.jp/camera/eosd/7d/sample/sample-images/downloads/005.jpg")
	list.Add("http://cweb.canon.jp/camera/eosd/kissx5/samples/downloads/01.jpg")
	list.Add("http://cweb.canon.jp/camera/eosd/kissx5/samples/downloads/02.jpg")
	list.Add("http://cweb.canon.jp/camera/eosd/kissx5/samples/downloads/03.jpg")
	list.Add("http://cweb.canon.jp/camera/eosd/kissx5/samples/downloads/04.jpg")
	list.Add("http://cweb.canon.jp/camera/eosd/kissx5/samples/downloads/05.jpg")
	list.Add("http://cweb.canon.jp/camera/powershot/s95/img/sample/portrait-org.jpg")
	list.Add("http://cweb.canon.jp/camera/powershot/s95/img/sample/still-org.jpg")

	' ランダムで取り出す
	Dim r = New System.Random()
	Return list.ElementAt(r.[Next](list.Count - 1))
End Function

同様のコードをObjective-Cでも書いてるんだけど、こっちのコードは今手元にないのでまた機会があれば。