javascript - 将路径字符串从 unc 转换为 uri,在 Google Apps 脚本中用反斜杠替换斜杠

标签 javascript google-apps-script replace split

我需要转换这个 UNC 的路径。我搜索了又搜索,无法拼凑任何东西。

"\\NAS_01\GlobalShare\Docs\Customers\2017\S\Smith, John\photo1.jpg"

我需要删除路径的“\NAS_01\GlobalShare\Docs\Customers\”部分以及“photo1.jpg”并以:

2017\S\Smith, John\

这样我就可以将它传递给以下函数:

function getDriveFolderNoCreate(path, rootFolder) {
  
  var name, folder, search, fullpath;
  
  // Remove extra slashes and trim the path
  fullpath = path.replace(/^\/*|\/*$/g, '').replace(/^\s*|\s*$/g, '').split("/");
  
  // Always start with the main Drive folder
  folder = rootFolder;
  
  for (var subfolder in fullpath) {
    
    name = fullpath[subfolder];
    search = folder.getFoldersByName(name);
    
    if (search.hasNext()) {
        var folder = search.next;
        var folderID = folder.getId();
        return folderID;
    }
  }
}

我的目的是返回一个 url 以打开具有相同路径的 Google Drive 文件夹。

最佳答案

我最终得到了一个非常有效的多部分解决方案。

我将填充 UNC 路径粘贴到单元格 B2。 这个公式在B3 =Index(split(B2, "\"), 0, 8) 它返回我需要的确切文件夹名称。 然后在我的 gs 文件中:

function findDriveFolder() {
  var pFId = "XYZ1233333333333";
  var input = SpreadsheetApp.getActive().getRange("B3").getValue();
  var folders =  DriveApp.getFoldersByName(input); 
  Logger.log("folders: " + folders[0]);
  while (folders.hasNext()) {
    var folder = folders.next();
  var url = folder.getUrl();
  showAnchor("View Folder", url);
  }
}

function showAnchor(name,url) {
  var html = '<html><body><a href="'+url+'" target="blank" onclick="google.script.host.close()">'+name+'</a></body></html>';
  var ui = HtmlService.createHtmlOutput(html)
  SpreadsheetApp.getUi().showModelessDialog(ui,"Files Folder");
}

我还没有实现 searchFolders 部分,我希望它能加快速度。至少它现在有效。

关于javascript - 将路径字符串从 unc 转换为 uri,在 Google Apps 脚本中用反斜杠替换斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50707963/

相关文章:

c++ - 替换 C++ 中的 delete,错误信息

javascript - 如何抓取一个单词或字符并将其包装在 span 标签中?

javascript - ExpressJS 路由中间件中的依赖注入(inject)

c# - javascript参数字符长度限制?

php - Google App Script 将电子邮件从 gmail 获取到第三方应用程序

google-apps-script - 无法使用 Google Apps 脚本搜索名称中带下划线的文件

javascript - 尝试在服务文件中使用 ng-model

javascript - react : Application works on desktop but on mobile a blank page is shown

html - 在 Google Apps Script 中提交 HTML 表单时如何将地理定位与输入一起发送

python - 搜索和替换文本 odfpy