import PySimpleGUI as sg\nimport os\n\n layout = [[sg.Text('Velg mappe som skal tas backup av og hvor du vil plassere backupen')],\n [sg.Text('Source folder', size=(15, 1)), sg.InputText(), sg.FolderBrowse()],\n [sg.Text('Backup destination ', size=(15, 1)), sg.InputText(), sg.FolderBrowse()],\n [sg.Text('Made by Henrik og Thomas\xe2\x84\xa2')],\n [sg.Submit(), sg.Cancel()]]\n window = sg.Window('Backup Runner v2.1')\n\n event, values = window.Layout(layout).Read()\nRun Code Online (Sandbox Code Playgroud)\n当我按下提交按钮时如何调用函数?或任何其他按钮?
\n我试图在文件夹中的所有文件以及从第一个文件夹开始的所有子文件夹中循环。我找到了一种方法,但我认为这是愚蠢的,并且可能是一种更好的方法。
该代码循环遍历第一个文件夹和所有文件。之后,它再次循环子文件夹,然后循环文件,然后第三次循环。
我还有其他方法可以做到这一点吗?只需选择一个文件夹,它就会自动沿层次结构循环。
static void ReadAllSubs(string siteUrl, string siteFolderPath, string localTempLocation)
{
ClientContext ctx = new ClientContext(siteUrl);
ctx.AuthenticationMode = ClientAuthenticationMode.Default;
SecureString passWord = new SecureString();
string pwd = "xxx";
foreach (char c in pwd.ToCharArray()) passWord.AppendChar(c);
ctx.Credentials = new SharePointOnlineCredentials("test@test.com", passWord);
FolderCollection folderCollection = ctx.Web.GetFolderByServerRelativeUrl("Delte%20dokumenter/07 - Detaljprosjekt").Folders;
// Don't just load the folder collection, but the property on each folder too
ctx.Load(folderCollection, fs => fs.Include(f => f.ListItemAllFields));
// Actually fetch the data
ctx.ExecuteQuery();
foreach (Folder folder in folderCollection)
{
//LOOP MAIN …Run Code Online (Sandbox Code Playgroud)