public JsonResult Browse(string path) { path = Path.Combine(ContentPaths[0], path).Replace('\\', '/') + "/"; var _client = new DropNetClient(accessKey, secretAccessKey, userTokenKey, userSecretKey); var _metaData = _client.GetMetaData(path); BrowseResult result = new BrowseResult(); result.ContentPaths = ContentPaths; result.Path = path; result.Files = _metaData.Contents.Where(e => e.Extension != "").Select(e => { long size = 0; if (e.Size.Contains(" B")) size = (long)double.Parse(e.Size.Replace(" B", "").Replace('.', ',')); else if( e.Size.Contains(" KB")) size = (long)(double.Parse(e.Size.Replace(" KB", "").Replace('.', ',')) * 1024); else if (e.Size.Contains(" MB")) size = (long)(double.Parse(e.Size.Replace(" MB", "").Replace('.', ',')) * 1024 * 1024); else if (e.Size.Contains(" GB")) size = (long)(double.Parse(e.Size.Replace(" GB", "").Replace('.', ',')) * 1024 * 1024 * 1024); return new FileEntry { Name = e.Name, Size = size }; }); result.Directories = _metaData.Contents.Where(e => e.Extension == "").Select(e => new DirectoryEntry { Name = e.Name }); return this.Json(result); }
public DropboxRepository(string appKey, string appSecret, string userToken, string userSecret, string folderPath) { if (!string.IsNullOrEmpty(appKey) && !string.IsNullOrEmpty(appSecret) && !string.IsNullOrEmpty(userToken) && !string.IsNullOrEmpty(userSecret) && !string.IsNullOrEmpty(folderPath)) { _client = new DropNetClient(apiKey: appKey, appSecret: appSecret, userToken: userToken, userSecret: userSecret); _cacheKey = string.Format(_cacheKey, appKey); var cachedMetaData = LoadFromCache<MetaData>(cacheKey: _cacheKey); if (cachedMetaData != null) { _dropboxImageFolderMetaData = cachedMetaData; } else { _dropboxImageFolderMetaData = _client.GetMetaData(path: folderPath); AddToCache(item: _dropboxImageFolderMetaData, cacheKey: _cacheKey, absoluteExpiration: DateTime.Now.AddHours(1)); } } }
public static void filesync() { //Testing Connection if (!LauncherHelper.TestConnection()) return; if (String.IsNullOrEmpty(Properties.Settings.Default.DropBoxUserToken)) { syncAcc(false); } DropNetClient dbClient = new DropNetClient(Program.Config.AppKey, Program.Config.AppSecret, Properties.Settings.Default.DropBoxUserToken, Properties.Settings.Default.DropBoxUserSecret); #if DEBUG dbClient.UseSandbox = true; #endif DropNet.Models.MetaData meta; try { meta = dbClient.GetMetaData("/"); } catch (Exception exc) { MessageBox.Show(exc.StackTrace + "\n maybe your account is not in the Dropbox Dev group for this App"); return; } List<string> filelist = new List<string>(); if (!Directory.Exists(Program.Config.LauncherDir + "/deck/")) { Directory.CreateDirectory(Program.Config.LauncherDir + "/deck/"); } if (!Directory.Exists(Program.Config.LauncherDir + "/replay/")) { Directory.CreateDirectory(Program.Config.LauncherDir + "/replay/"); } foreach (string item in Directory.GetFiles(Program.Config.LauncherDir + "/deck/")) { filelist.Add(item); } foreach (string item in Directory.GetFiles(Program.Config.LauncherDir + "/replay/")) { filelist.Add(item); } foreach (DropNet.Models.MetaData file in meta.Contents) { if (Path.GetExtension(file.Name) == ".ydk") { if (File.Exists(Program.Config.LauncherDir + "/deck/" + file.Name)) { if (DateTime.Compare(file.ModifiedDate, File.GetLastWriteTime(Program.Config.LauncherDir + "/deck/" + file.Name)) < 0) { FileStream fs = new FileStream(Program.Config.LauncherDir + "/deck/" + file.Name, FileMode.Create); fs.Write(dbClient.GetFile(file.Name), 0, dbClient.GetFile(file.Name).Length); fs.Close(); } else if (DateTime.Compare(file.ModifiedDate, File.GetLastWriteTime(Program.Config.LauncherDir + "/deck/" + file.Name)) > 0) { FileStream fs = File.OpenRead(Program.Config.LauncherDir + "/deck/" + file.Name); byte[] upfile = new byte[fs.Length]; fs.Read(upfile, 0, upfile.Length); fs.Close(); dbClient.UploadFile("/", file.Name, upfile); } } else { FileStream fs = new FileStream(Program.Config.LauncherDir + "/deck/" + file.Name, FileMode.Create); fs.Write(dbClient.GetFile(file.Name), 0, dbClient.GetFile(file.Name).Length); fs.Close(); } } else if (Path.GetExtension(file.Name) == ".yrp") { if (File.Exists(Program.Config.LauncherDir + "/replay/" + file.Name)) { if (DateTime.Compare(file.ModifiedDate, File.GetLastWriteTime(Program.Config.LauncherDir + "/deck/" + file.Name)) < 0) { FileStream fs = new FileStream(Program.Config.LauncherDir + "/replay/" + file.Name, FileMode.Create); fs.Write(dbClient.GetFile(file.Name), 0, dbClient.GetFile(file.Name).Length); fs.Close(); } else if (DateTime.Compare(file.ModifiedDate, File.GetLastWriteTime(Program.Config.LauncherDir + "/deck/" + file.Name)) > 0) { FileStream fs = File.OpenRead(Program.Config.LauncherDir + "/replay/" + file.Name); byte[] upfile = new byte[fs.Length]; fs.Read(upfile, 0, upfile.Length); fs.Close(); dbClient.UploadFile("/", file.Name, upfile); } } else { FileStream fs = new FileStream(Program.Config.LauncherDir + "/replay/" + file.Name, FileMode.Create); fs.Write(dbClient.GetFile(file.Name), 0, dbClient.GetFile(file.Name).Length); fs.Close(); } } } if (filelist.Count > meta.Contents.Count) { foreach (string file in filelist) { if (Path.GetExtension(file) == ".ydk") { FileStream fs = File.OpenRead(Program.Config.LauncherDir + "/deck/" + Path.GetFileName(file)); byte[] upfile = new byte[fs.Length]; fs.Read(upfile, 0, upfile.Length); fs.Close(); dbClient.UploadFile("/", Path.GetFileName(file), upfile); } else if (Path.GetExtension(file) == ".yrp") { FileStream fs = File.OpenRead(Program.Config.LauncherDir + "/replay/" + Path.GetFileName(file)); byte[] upfile = new byte[fs.Length]; fs.Read(upfile, 0, upfile.Length); fs.Close(); dbClient.UploadFile("/", Path.GetFileName(file), upfile); } } } //MessageBox.Show("yeah!!"); }
public static List<StorageTree> BuildDropboxSubtreeTwoLevels(DropNetClient client, string scope) { var metadata = client.GetMetaData(scope); List<StorageTree> subFolders = new List<StorageTree>(); foreach (var file in metadata.Contents) { if (file.Is_Dir) { subFolders.Add(new StorageTree() { Id = file.Path, Name = file.Name, Source = StorageService.ServiceTypes.Dropbox, Queried = false, Subtree = BuildDropboxSubtreeOneLevel(client, file.Path) }); } } return subFolders; }
public void UploadFolderCreate(string folder, string path, DropNetClient client) { //client = new DropNetClient(apiKey, appSecret, GetUserLoginDB(tokendb), GetUserLoginDB(secretdb)); try { //Create a Folder if (path == null) { var metaData = client.GetMetaData("/",null,false); if (!(metaData.Contents.Any(c => c.Is_Dir && c.Path == "/" + folder))) { client.CreateFolder("/" + folder); } } else { var metaData = client.GetMetaData(path,null,false); if (!(metaData.Contents.Any(c => c.Is_Dir && c.Path == folder))) { client.CreateFolder(path + "/" + folder); } } } catch (DirectoryNotFoundException ex) { MessageBox.Show(ex.Message.ToString()); } }
/// <summary> /// This method does all the dirty work for you (syncs any folder with db) /// </summary> /// <param name="folder">the folder you want to sync</param> private static void syncFolder(string folder) { DropNetClient dbClient = new DropNetClient(Program.Config.AppKey, Program.Config.AppSecret, Properties.Settings.Default.DropBoxUserToken, Properties.Settings.Default.DropBoxUserSecret); #if DEBUG dbClient.UseSandbox = true; Program.Config.LauncherDir = "C:/Program Files (x86)/DevPro/"; #endif DropNet.Models.MetaData meta; try { meta = dbClient.GetMetaData("/" + folder); } catch (Exception exc) { try { dbClient.CreateFolder("/" + folder); meta = dbClient.GetMetaData("/" + folder); } catch (Exception) { MessageBox.Show(exc.StackTrace + "\n maybe your account is not in the Dropbox Dev group for this App"); return; } } List<string> filelist = new List<string>(); List<string> dirlist = new List<string>(); //Program.Config.LauncherDir + "/" + if (!Directory.Exists(Program.Config.LauncherDir + folder)) { Directory.CreateDirectory(Program.Config.LauncherDir + folder); } foreach (string item in Directory.GetFiles(Program.Config.LauncherDir + folder)) { filelist.Add(item); } foreach (string item in Directory.GetDirectories(Program.Config.LauncherDir + folder)) { dirlist.Add(item); } if (filelist.Count == 0 && dirlist.Count != 0) { foreach (string item in dirlist) { syncFolder(folder + Path.GetFileNameWithoutExtension(item) + "/"); return; } } foreach (DropNet.Models.MetaData file in meta.Contents) { if (File.Exists(Program.Config.LauncherDir + folder + file.Name)) { if (DateTime.Compare(file.ModifiedDate, File.GetLastWriteTime(Program.Config.LauncherDir + folder + file.Name)) < 0) { FileStream fs = new FileStream(Program.Config.LauncherDir + folder + file.Name, FileMode.Create); fs.Write(dbClient.GetFile(file.Name), 0, dbClient.GetFile(file.Name).Length); fs.Close(); } else if (DateTime.Compare(file.ModifiedDate, File.GetLastWriteTime(Program.Config.LauncherDir + folder + file.Name)) > 0) { FileStream fs = File.OpenRead(Program.Config.LauncherDir + folder + file.Name); byte[] upfile = new byte[fs.Length]; fs.Read(upfile, 0, upfile.Length); fs.Close(); dbClient.UploadFile("/" + folder, file.Name, upfile); } } else { FileStream fs = new FileStream(Program.Config.LauncherDir + folder + file.Name, FileMode.Create); fs.Write(dbClient.GetFile(file.Name), 0, dbClient.GetFile(file.Name).Length); fs.Close(); } } if (filelist.Count + dirlist.Count > meta.Contents.Count) { foreach (string file in filelist) { FileStream fs = File.OpenRead(Program.Config.LauncherDir + folder + Path.GetFileName(file)); byte[] upfile = new byte[fs.Length]; fs.Read(upfile, 0, upfile.Length); fs.Close(); dbClient.UploadFile("/" + folder, Path.GetFileName(file), upfile); } } }