cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
rgireyev
Level: Powered On

Synching files from Hard Drive to Google Drive or OneDrive

Hello!

 

I'm working on my first flow and decided to create something that I can actually use. I'm a Java developer and would like to synch up my source files as they are modified to Google Drive (or OneDrive for Business if Google Drive is not as well supported as OneDrive).

 

Some background I have several projects that I work on at different points in time. Something like 20. Each project is in its own directory and has its own source file folder. Java source files have a ".java" extension.

 

Before I get into specific questions I have a few general ones.
1. When a file on a hard drive is updated or created does that trigger the flow to start running?
2. Or does the flow only run at certain intervals and I have to go through all of the files that I'm interested in and see if they were updated or created?
3. Would this particular Workflow be easier to code and execute on OneDrive for Business or is using Google Drive the same?

 

The workflow would be something like this.
1. Using the "File System - When a file is added or modified" Detect when a file is modified (or created)
2. Condition If the file has a ".java" extension Continue, Else End.
3. Condition If File was Created in the Windows File System, copy file to the Google Drive. The tricky thing is to place it in the right directory. Meaning if I have the following directory path on my hard drive C:\Projects\ProjectX\src\Application.java. I would like it to go to the same directory path on Google drive not counting the root. Something like https://drive.google.com/drive/my-drive/Projects\ProjectX\src\Application.java. So somehow the path that the file resides in, needs to be discovered. The same logic needs to happen for the Update logic coming up below.
4. Else if the file was not just created. Condition If the File was just Updated, then copy/synch this file to Google Drive (or OneDrive for business if it is easier). Obviously I need to be able to Overwrite a file that is already there for this Condition.

 

I think I need help with steps/conditions 3 and 4.
1. Since the File System appears to be a multitrigger how do I determine which one it is. Create or Update?

Capture.PNG

 

 

 

 

TIA
Rudy

2 ACCEPTED SOLUTIONS

Accepted Solutions
m4ngo5
Level: Powered On

Re: Synching files from Hard Drive to Google Drive or OneDrive

Hi rgireyev,

 

Welcome to the Power community! 

 

Flow is an incredible tool, but I'm not sure you need it for this project.  OneDrive and Google Drive both have sync clients which can sync files within file structures.  I work mostly with OneDrive, and this is a Microsoft forum, so I'll speak primarily of OneDrive, but you can find information on Google Drive syncing here: https://support.google.com/drive/answer/2374987?visit_id=1-636686133360360858-3505266099&p=backup_an...

 

From your OneDrive in Office 365, click sync at the top, and you will be prompted to sync OneDrive to your computer.  Move your java project folder structure into the OneDrive section in Windows Explorer.  Then any changes to made to these files or the file structure will sync automatically across OneDrive and all synced computers and devices.  

 

OneDriveSync.jpg

 

One of the great features of OneDrive is version history, which maintains all previous versions of your files. 

 

Your questions may be better posed on the OneDrive community support forums, but I am happy to answer any questions as well. https://techcommunity.microsoft.com/t5/OneDrive-for-Business/ct-p/OneDriveforBusiness

 

Here is the OneDrive Sync Client Article page: https://support.office.com/en-us/article/sync-files-with-the-onedrive-sync-client-in-windows-615391c...

 

 

 

m4ngo5
Level: Powered On

Re: Synching files from Hard Drive to Google Drive or OneDrive

Hi Rudy,

 

Well your Flow sounds quite ambitious, but I appreciate ambition.  I'll give your questions the best answers I can.

 

Before I get into specific questions I have a few general ones.
1. When a file on a hard drive is updated or created does that trigger the flow to start running?
2. Or does the flow only run at certain intervals and I have to go through all of the files that I'm interested in and see if they were updated or created?
3. Would this particular Workflow be easier to code and execute on OneDrive for Business or is using Google Drive the same?

 

  1. A Flow always starts with a trigger.  The flow in your screenshot is triggered when a file in a specific folder is added or modified.  Then your condition is evaluated.
  2. You can trigger a flow at intervals, using a trigger called "Shedule - Recurrence".  For your purposes, method 1 is probably the better option.

  3. For this particular flow, you can accomplish it with Google Drive.  For other solutions, OneDrive for Business does provide more flexibility.

 

The workflow would be something like this.
1. Using the "File System - When a file is added or modified" Detect when a file is modified (or created)
2. Condition If the file has a ".java" extension Continue, Else End.
3. Condition If File was Created in the Windows File System, copy file to the Google Drive. The tricky thing is to place it in the right directory. Meaning if I have the following directory path on my hard drive C:\Projects\ProjectX\src\Application.java. I would like it to go to the same directory path on Google drive not counting the root. Something like https://drive.google.com/drive/my-drive/Projects\ProjectX\src\Application.java. So somehow the path that the file resides in, needs to be discovered. The same logic needs to happen for the Update logic coming up below.

 

4. Else if the file was not just created. Condition If the File was just Updated, then copy/synch this file to Google Drive (or OneDrive for business if it is easier). Obviously I need to be able to Overwrite a file that is already there for this Condition.

 

I think I need help with steps/conditions 3 and 4.
1. Since the File System appears to be a multitrigger how do I determine which one it is. Create or Update?

 

 

  1. Okay
  2. Okay
  3. Here is the basic idea of what I would do.

    1. The "When a file is added or modified" trigger returns "BlobMetadata" according to documentation (I didn't test).  Within BlobMetadata is the path of the file.  https://docs.microsoft.com/en-us/connectors/filesystem/
    2. Create a Google Drive "List files in folder" action.  Use an expression to remove unnecessary bits from the beginning/end of the folder path.
    3. Use a filter array to check if the modified file exists in the files listed from Google Drive.  
    4. Use a condition to update the file if it exists, or create the file if it does not exist.  

     1. My steps 3 & 4 take care of create or update in different branches of the condition.

 

You might read through this thread for some inspiration: https://powerusers.microsoft.com/t5/Building-Flows/Comparing-File-Lists/td-p/64178

7 REPLIES 7
m4ngo5
Level: Powered On

Re: Synching files from Hard Drive to Google Drive or OneDrive

Hi rgireyev,

 

Welcome to the Power community! 

 

Flow is an incredible tool, but I'm not sure you need it for this project.  OneDrive and Google Drive both have sync clients which can sync files within file structures.  I work mostly with OneDrive, and this is a Microsoft forum, so I'll speak primarily of OneDrive, but you can find information on Google Drive syncing here: https://support.google.com/drive/answer/2374987?visit_id=1-636686133360360858-3505266099&p=backup_an...

 

From your OneDrive in Office 365, click sync at the top, and you will be prompted to sync OneDrive to your computer.  Move your java project folder structure into the OneDrive section in Windows Explorer.  Then any changes to made to these files or the file structure will sync automatically across OneDrive and all synced computers and devices.  

 

OneDriveSync.jpg

 

One of the great features of OneDrive is version history, which maintains all previous versions of your files. 

 

Your questions may be better posed on the OneDrive community support forums, but I am happy to answer any questions as well. https://techcommunity.microsoft.com/t5/OneDrive-for-Business/ct-p/OneDriveforBusiness

 

Here is the OneDrive Sync Client Article page: https://support.office.com/en-us/article/sync-files-with-the-onedrive-sync-client-in-windows-615391c...

 

 

 

rgireyev
Level: Powered On

Re: Synching files from Hard Drive to Google Drive or OneDrive

Hello m4ngo5

 

Thank you for the great info and taking the time to reply. I agree with you that there are probably better options out there to accomplish what I'm doing. However, my main goal with this project is to learn the tool and get my first Flow up and running. Basically see how things work and watch it in action to see how reliable it is and what other things I can learn from this experience. So from that perspective I would still like to continue with this project as I was aware of both tools that you mentioned and will certainly go with them in the end. 

 

Thanks

Rudy

 

m4ngo5
Level: Powered On

Re: Synching files from Hard Drive to Google Drive or OneDrive

Hi Rudy,

 

Well your Flow sounds quite ambitious, but I appreciate ambition.  I'll give your questions the best answers I can.

 

Before I get into specific questions I have a few general ones.
1. When a file on a hard drive is updated or created does that trigger the flow to start running?
2. Or does the flow only run at certain intervals and I have to go through all of the files that I'm interested in and see if they were updated or created?
3. Would this particular Workflow be easier to code and execute on OneDrive for Business or is using Google Drive the same?

 

  1. A Flow always starts with a trigger.  The flow in your screenshot is triggered when a file in a specific folder is added or modified.  Then your condition is evaluated.
  2. You can trigger a flow at intervals, using a trigger called "Shedule - Recurrence".  For your purposes, method 1 is probably the better option.

  3. For this particular flow, you can accomplish it with Google Drive.  For other solutions, OneDrive for Business does provide more flexibility.

 

The workflow would be something like this.
1. Using the "File System - When a file is added or modified" Detect when a file is modified (or created)
2. Condition If the file has a ".java" extension Continue, Else End.
3. Condition If File was Created in the Windows File System, copy file to the Google Drive. The tricky thing is to place it in the right directory. Meaning if I have the following directory path on my hard drive C:\Projects\ProjectX\src\Application.java. I would like it to go to the same directory path on Google drive not counting the root. Something like https://drive.google.com/drive/my-drive/Projects\ProjectX\src\Application.java. So somehow the path that the file resides in, needs to be discovered. The same logic needs to happen for the Update logic coming up below.

 

4. Else if the file was not just created. Condition If the File was just Updated, then copy/synch this file to Google Drive (or OneDrive for business if it is easier). Obviously I need to be able to Overwrite a file that is already there for this Condition.

 

I think I need help with steps/conditions 3 and 4.
1. Since the File System appears to be a multitrigger how do I determine which one it is. Create or Update?

 

 

  1. Okay
  2. Okay
  3. Here is the basic idea of what I would do.

    1. The "When a file is added or modified" trigger returns "BlobMetadata" according to documentation (I didn't test).  Within BlobMetadata is the path of the file.  https://docs.microsoft.com/en-us/connectors/filesystem/
    2. Create a Google Drive "List files in folder" action.  Use an expression to remove unnecessary bits from the beginning/end of the folder path.
    3. Use a filter array to check if the modified file exists in the files listed from Google Drive.  
    4. Use a condition to update the file if it exists, or create the file if it does not exist.  

     1. My steps 3 & 4 take care of create or update in different branches of the condition.

 

You might read through this thread for some inspiration: https://powerusers.microsoft.com/t5/Building-Flows/Comparing-File-Lists/td-p/64178

rgireyev
Level: Powered On

Re: Synching files from Hard Drive to Google Drive or OneDrive

Thank you. This is just the guidence I was looking for. I will give it a try and let you know what further questions I have. Smiley Happy 

 

Rudy

 

Administrator
Administrator

Re: Synching files from Hard Drive to Google Drive or OneDrive

Hello,  @rgireyev!

Have you had an opportunity to apply @m4ngo5‘s recommendation to adapt your Flow? If yes, and you find that solution to be satisfactory, please go ahead and click “Accept as Solution” so that this thread will be marked for other users to easily identify!


Thank you for being an active member of the Flow Community!

-Gabriel
Flow Community Manager

-Gabriel
Microsoft Flow Community Manager
rgireyev
Level: Powered On

Re: Synching files from Hard Drive to Google Drive or OneDrive

Sorry guys got sidetracked by another project. Returning to this today. It will take me a few days find the Controls for all of the steps and implement them once I do and it works I'll come back and try to post it here. But if I run into problems I'll ask them here.

 

Thank you

Rudy

 

Highlighted
rgireyev
Level: Powered On

Re: Synching files from Hard Drive to Google Drive or OneDrive

Here is what I came up with so far. I have not run it as yet, since I have further questions that I have not been able to find answers for.

1. It seems very odd that the designers of Flow would give one trigger that is triggered by 2 distinct event (e.g. Create File and Update File) and then not give us a flag or something that would tell us which even caused the initial trigger.

2. It seems like the Flow designer felt that it needed to add the "Apply to each" to my "Filter array" which seems like a double loop to me since

3. One of the threads that m4ngo5 linked to had the "Condition 2" that used the expression "@empty(body('Filter_array'))" to see if the File name that triggered the Flow exists in the destination folder. Thereby deciding whether this is an Add or an Update. The flow had a lot trouble with this expression just saving it and it is unable to show it in the basic mode. Is anyone else familiar with it and/or have used it?

4. My Create File 2 (as well as Update File 2) is trying to write the file into the same directory structure on Google Drive as it is on my Hard Drive the root notwothstanding of course. Am I on the right track?

Thanks to everyone once again
Rudy

 

FlowPart1.PNGPart 1FlowPart2.PNGPart 2

Helpful resources

Announcements
firstImage

Microsoft Business Applications Virtual Launch Event

Watch the event on demand for an in-depth look at the new innovations across Dynamics 365 and the Microsoft Power Platform.

firstImage

Watch Sessions On Demand!

Continue your learning in our online communities.

Power Platform 2019 Release Wave 2 Plan

Power Platform 2019 Release Wave 2 Plan

Features releasing from October 2019 through March 2020.

thirdimage

Flow Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

fifthimage

Microsoft Learn

Learn how to build the business apps that you need.

sixthImage

Power Platform World Tour

Find out where you can attend!

seventhimage

Webinars & Video Gallery

Watch & learn from the Flow Community Video Gallery!

Top Kudoed Authors
Users Online
Currently online: 181 members 4,021 guests
Please welcome our newest community members: